অ্যাপ বার আপনাকে ব্যবহারকারীর বিভিন্ন কাজের জন্য বাটন যোগ করার সুযোগ দেয়। এই ফিচারটি আপনাকে বর্তমান পরিস্থিতির জন্য সবচেয়ে গুরুত্বপূর্ণ কাজগুলো অ্যাপের শীর্ষে রাখতে সাহায্য করে। উদাহরণস্বরূপ, একটি ফটো ব্রাউজিং অ্যাপ ব্যবহারকারী যখন তার ফটো রোল দেখছেন, তখন শীর্ষে শেয়ার এবং অ্যালবাম তৈরির বাটন দেখাতে পারে। ব্যবহারকারী যখন কোনো একটি নির্দিষ্ট ছবি দেখেন, তখন অ্যাপটি ক্রপ এবং ফিল্টার বাটন দেখাতে পারে।
অ্যাপ বারে জায়গা সীমিত। যদি কোনো অ্যাপ, অ্যাপ বারে যতগুলো অ্যাকশন রাখা যায় তার চেয়ে বেশি অ্যাকশন ঘোষণা করে, তাহলে অ্যাপ বার অতিরিক্ত অ্যাকশনগুলোকে একটি ওভারফ্লো মেনুতে পাঠিয়ে দেয়। অ্যাপটি এটাও নির্দিষ্ট করে দিতে পারে যে, কোনো একটি অ্যাকশন অ্যাপ বারে প্রদর্শিত না হয়ে সবসময় ওভারফ্লো মেনুতেই দেখাবে।

অ্যাকশন বাটন যোগ করুন
অ্যাকশন ওভারফ্লোতে উপলব্ধ সমস্ত অ্যাকশন বাটন এবং অন্যান্য আইটেম একটি XML মেনু রিসোর্সে সংজ্ঞায়িত করা থাকে। অ্যাকশন বারে অ্যাকশন যোগ করতে, আপনার প্রোজেক্টের res/menu/ ডিরেক্টরিতে একটি নতুন XML ফাইল তৈরি করুন।
নিম্নলিখিত নমুনা মেনু XML ফাইলে দেখানো অনুযায়ী, অ্যাকশন বারে অন্তর্ভুক্ত করতে চান এমন প্রতিটি আইটেমের জন্য একটি <item> এলিমেন্ট যোগ করুন:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- "Mark Favorite", must appear as action button if possible. --> <item android:id="@+id/action_favorite" android:icon="@drawable/ic_favorite_black_48dp" android:title="@string/action_favorite" app:showAsAction="ifRoom"/> <!-- Settings, must always be in the overflow. --> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/> </menu>
` app:showAsAction অ্যাট্রিবিউটটি নির্দিষ্ট করে যে অ্যাকশনটি অ্যাপ বারে একটি বাটন হিসেবে দেখানো হবে কি না। যদি আপনি app:showAsAction="ifRoom" সেট করেন —যেমনটি উদাহরণ কোডের ` favourite` অ্যাকশনে করা হয়েছে—তাহলে অ্যাপ বারে জায়গা থাকলে অ্যাকশনটি একটি বাটন হিসেবে প্রদর্শিত হয়। যদি পর্যাপ্ত জায়গা না থাকে, তবে অতিরিক্ত অ্যাকশনগুলো ওভারফ্লো মেনুতে চলে যায়। যদি আপনি app:showAsAction="never" সেট করেন —যেমনটি উদাহরণ কোডের ` settings` অ্যাকশনে করা হয়েছে—তাহলে অ্যাকশনটি সবসময় ওভারফ্লো মেনুতে তালিকাভুক্ত থাকে এবং অ্যাপ বারে প্রদর্শিত হয় না।
অ্যাকশনটি অ্যাপ বারে প্রদর্শিত হলে, সিস্টেম অ্যাকশনটির আইকনটিকে অ্যাকশন বাটন হিসেবে ব্যবহার করে। আপনি ম্যাটেরিয়াল আইকনস -এ অনেক দরকারি আইকন খুঁজে পেতে পারেন।
ক্রিয়াকলাপের প্রতিক্রিয়া জানান
যখন ব্যবহারকারী অ্যাপ বারের কোনো একটি আইটেম নির্বাচন করেন, তখন সিস্টেম আপনার অ্যাক্টিভিটির onOptionsItemSelected() কলব্যাক মেথডটি কল করে এবং কোন আইটেমটি ট্যাপ করা হয়েছে তা নির্দেশ করার জন্য একটি MenuItem অবজেক্ট পাস করে। আপনার onOptionsItemSelected() এর ইমপ্লিমেন্টেশনে, কোন আইটেমটি ট্যাপ করা হয়েছে তা নির্ধারণ করতে MenuItem.getItemId() মেথডটি কল করুন। ফেরত আসা ID-টি সংশ্লিষ্ট <item> এলিমেন্টের android:id অ্যাট্রিবিউটে আপনার ঘোষিত মানের সাথে মিলে যায়।
উদাহরণস্বরূপ, নিম্নলিখিত কোড স্নিপেটটি পরীক্ষা করে দেখে যে ব্যবহারকারী কোন অ্যাকশনটি নির্বাচন করেন। যদি মেথডটি ব্যবহারকারীর অ্যাকশনটি চিনতে না পারে, তবে এটি সুপারক্লাস মেথডটিকে কল করে:
কোটলিন
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { R.id.action_settings -> { // User chooses the "Settings" item. Show the app settings UI. true } R.id.action_favorite -> { // User chooses the "Favorite" action. Mark the current item as a // favorite. true } else -> { // The user's action isn't recognized. // Invoke the superclass to handle it. super.onOptionsItemSelected(item) } }
জাভা
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: // User chooses the "Settings" item. Show the app settings UI. return true; case R.id.action_favorite: // User chooses the "Favorite" action. Mark the current item as a // favorite. return true; default: // The user's action isn't recognized. // Invoke the superclass to handle it. return super.onOptionsItemSelected(item); } }
