در قسمت نوزدهم آموزش اندروید به طور کامل با اکتیویتی ها و چرخه حیات آنها آشنا شدیم و دریافتیم که اکتیویتی ها رابط های کاربری با کاربر هستند که در ادامه آموزش ها به طور مفصل تر با انواع ابزار ها و گروه های آموزشی برای کنترل بهتر آشنا خواهیم شد
تا اینجا در آموزش ها در رابطه با اکتیوتی که پایه ای ترین عضو برنامه نویسی اندروید میباشد بسیار صحبت شد.اکتیوتی رابط کاربری برنامه شما را نشان میدهد وممکن است شامل قسمت هایی چون دکمه , برچسب ها , حعبه متن و… باشد.معمولا رابط کاربری در یک فایل xml (مانند main.xml در پوشه res/layout) تعریف میکنیم که چیزی شبیه به کدهای زیر است
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.testprj.MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout>
در زمان اجرا نیز رابط کاربری xml را در متد onCreate() کلاس Activity با استفاده از متد ()setContentView بارگزاری میکنیم
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
در زمان کامپایل برنامه نیز اکتیویتی به layout مشخص شده اشاره میکند و تمامی ابزارهایی که در آن layout تعریف شده است را نمایش میدهد.
یک اکتیویتی شامل ابزارهای نمایش و گروه ابزار ها میباشد.یک ابزار نمایش یک شی برروی صفحه نمایش میباشد مثل دکمه ها , برچسب ها و… یک ابزار نمایش از کلاس پایه android.view.View مشتق شده. برای ابزارها میتوان دو عملیات مهم را انجام داد یکی اختصاص properties که از طریق جدول Properties به صورت گرافیکی و یا به صورت کدنویسی مشخص کرد ویژگی ها مانند id , caption , defaultValue و …
و همچنین ایجاد رویداد برای ابزارها که مشخص کننده عکس العمل ابزارها در برابر اعمال مختلف کاربر است برای مثال برای ابزار Button رویدادی چون onClick بسیار پرکابرد است.
یک یا چند ابزار نمایش را میتوان در یک گروه ابزار قرار داد. یک گروه ابزار (که خود نوعی ابزار نمایش است)فضایی را جهت چینش و نمایش ابزار های نمایش مهیا میکند. یک گروه ابزار از یک کلاس پایه android.view.ViewGroup مشتق میشود.
اندروید از گروه ابزار های زیر پشتیبانی میکند
دراندروید میتوان با تلفیق چندین گروه ابزار اقدام به ایجاد یک رابط کاربری دلخواه کرد.
این گروه ابزار ها را در یک ستون و یا یک ردیف چینش میکند ابزار های نمایش فرزند را نیز میتوان بصورت افقی یا عمودی قرار داد.برای درک بیشتر به مثال زیر دقت فرمایید
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </LinearLayout>
در این فایل main.xml یک عنصر ریشه <LinearLayout> و عنصر نمایش <TextView> درون آن قرار داده شده.عنصر <LinearLayout> اولویت نمایش ابزار های نمایشی درون خود را کنترل میکند.
هرابزار نمایش یا گروه ابزار یکسری خصوصیات عمومی دارند که در جدول زیر مشاهده میکنید
*بعضی از این خصوصیات تنها زمانی کاربرد دارند که ابزار نمایش در گروه خاصی باشد برای مثال خصوصیات layout_weight و layout_gravity فقط وقتی کاربرد دارند که یک بزار نمایش در LinearLayout یا TableLayout قرار گیرند.
برای مثال عرض عنصر <TextView> با استفاده از ثابت fill_parent تمام عرض والد خودرا پر میکند(در اینجا والد به صفحه نمایش اشاره دارد)ارتفاع آن به وسیله ثابت wrap_content مشخص میشود که بدین معنی است که ارتفاع آن به اندازه ارتفاع محتویات آن باشد.
<TextView android:layout_width="100dp" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/button1" android:layout_width="160dp" android:layout_height="wrap_content" android:text="Button" />
به کد بالا دقت کنید.هنگامی که در حال مشخص کردن اندازه عناصر رابط کاربری خود هستید باید با واحدهای اندازه گیری آشنا باشید