میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

استفاده از Toolbar در اندروید قسمت اول

با سلام خدمت همه دوستان در این مقاله قصد داریم در مورد استفاده از Toolbar در اندروید استودیو خدمت شما عزیزان باشیم

المان هایی که در نوار ابزار مشاهده می کنید در اندروید actions خوانده می شوند. اگرچه می توان آیتم های نوار ابزار را با کدنویسی تعریف کرد، با این حال توسعه دهندگان معمولا آن ها را در یک فایل محتوا XML تحت پوشه ی / res تعریف می کنند.

تعریف منوها در یک فایل مجزا تحت پوشه ی res/menu ذخیره می شوند. ابزار اندروید خود به صورت خودکار یک اشاره گر به آیتم های منو جهت دسترسی به منابع آن در فایل R ایجاد می کند.

یک activity معمولا entry ها را از طریق متد () onCreateOptionsMenu به نوارابزار تزریق می کند. خصیصه

( showAsAction( attribute به شما این اجازه را می دهد تا نحوه ی نمایش و ظاهر آیتم مورد نظر در نوارابزار را تعیین نمایید. به عنوان مثال، خصیصه ی ifRoom مشخص می کند آیا فضای کافی برای نمایش المان وجود دارد یا خیر.

 

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_refresh"
android:orderInCategory="100"
android:showAsAction="always"
android:icon="@drawable/ic_action_refresh"
android:title="Refresh"/>
<item
android:id="@+id/action_settings"
android:title="Settings">
</item>
</menu>

کلاس MenuInflator این امکان را فراهم می آورد تا action های تعریف شده در فایل XML را inflate نموده (آن ها را جهت قرار گرفتن در activity به آبجکت view تبدیل کرده) سپس آن ها را به action bar اضافه نمایید. می توانید با فراخوانی () getMenuInflator در سطح activity به کلاس MenuInflator دسترسی داشته باشید. نمونه کد زیر نحوه ی پیاده سازی و ایجاد actionها را نمایش می دهد.

 

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
return true;
}

نکته: اگرچه می توان action ها را در کد برنامه نیز تعریف کرد، با این حال توصیه می شود این کار را در فایل های XML انجام دهید چرا که میزان کدهای تکراری ( )boilerplate codeرا کاهش می دهد.

 


عملیاتی که در پی انتخاب آیتم های نوارابزار رخ می دهند (واکنش نشان دادن به انتخاب actionها )

زمانی که action  ای کلیک می شود، متد onOptionsItemSelected() در activity مربوطه فراخوانی می گردد. این متد action انتخابی را به عنوان پارامتر ورودی دریافت می کند. کاربرد این متد در نمونه ی زیر به نمایش گذاشته شده است.

 

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// action with ID action_refresh was selected
case R.id.action_refresh:
Toast.makeText(this, "Refresh selected", Toast.LENGTH_SHORT)
.show();
break;
// action with ID action_settings was selected
case R.id.action_settings:
Toast.makeText(this, "Settings selected", Toast.LENGTH_SHORT)
.show();
break;
default:
break;
}
return true;
}

جستجو برای یک actionیا آیتم در نوارابزار /action bar

به منظور جستجو برای یک action یا آیتم در منو، متد () findItem از کلاس Menu را فراخوانی نمایید. به وسیله ی این متد می توانید با استفاده از id یک آیتم به آن دسترسی داشته باشید.

 


ویرایش منو

متد () onCreateOptionsMenu تنها یکبار صدا خورده می شود. در صورت نیاز به ویرایش منو در آینده، لازم است متد () invalidateOptionsMenu را فراخوانی نمایید. پس از آن تابع onCreateOptionsMenu() بار دیگر صدا زده می شود.

 


Contextual action mode و toolbar  ( وابسته کردن toolbar به قرائن با استفاده ازcontextual action mode )

contextual action mode یک نوارابزار (وابسته به قرائن و بستر جاری) است که برای انجام subtask ها و وظایف کوچک برای مدت زمان معینی، به صورت موقتی بر روی نوارابزار اصلی اپلیکیشن ظاهر می شود.

contextual action mode معمولا با انتخاب یک آیتم یا کلیک طولانی مدت بر روی آن ظاهر می شود.

به منظور پیاده سازی این نوع ،toolbar کافی است متد () startActionMode را بر روی یک viewer در activity خود فراخوانی نمایید. متد نام برده آبجکت ActionMode.Callback را دریافت می کند. این آبجکت وظیفه ی مدیریت چرخه ی حیات contextual action bar را بر عهده است. همچنین می توانید با استفاده از متد (registerForContexMenu(view یک منوی وابسته به قرائن/ context menu به view مورد نظر اختصاص دهید. Context menu نیز با کلیک طولانی مدت بر روی view مورد نظر فعال می شود.

هر بار که یک context menu فعال می شود، متد () onCreateContextMenu نیز فراخوانی می شود. می دانید چرا؟ context menu پس از هر بار استفاده کاملا دور انداخته می شود.

توصیه می شود تا حد امکان بجای context menuاز contextual action mode استفاده نمایید.


امیدواریم آموزش استفاده از Toolbar در اندروید استودیو نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟