অ্যাপ বার সেট আপ করুন

কম্পোজ পদ্ধতিটি চেষ্টা করুন
জেটপ্যাক কম্পোজ হলো অ্যান্ড্রয়েডের জন্য প্রস্তাবিত UI টুলকিট। কম্পোজে কীভাবে কম্পোনেন্ট যোগ করতে হয় তা জানুন।

এর সবচেয়ে মৌলিক রূপে, অ্যাকশন বারের একপাশে অ্যাক্টিভিটির শিরোনাম এবং অন্যপাশে একটি ওভারফ্লো মেনু প্রদর্শিত হয়। এই মৌলিক রূপেও, অ্যাপ বার ব্যবহারকারীদের প্রয়োজনীয় তথ্য প্রদান করে এবং অ্যান্ড্রয়েড অ্যাপগুলোকে একটি সামঞ্জস্যপূর্ণ চেহারা ও অনুভূতি দেয়।

অ্যান্ড্রয়েড অ্যাপে Now-এর অ্যাপ বার দেখানো একটি ছবি।
চিত্র ১. 'Now in Android' অ্যাপের একটি অ্যাকশন আইকনসহ অ্যাপ বার।

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

অন্যদিকে, AndroidX AppCompat লাইব্রেরির Toolbar সংস্করণে বিভিন্ন ফিচার যোগ করা হয়, যার ফলে AndroidX লাইব্রেরি ব্যবহারকারী ডিভাইসগুলোতে সেই ফিচারগুলো পাওয়া যায়।

এই কারণেই আপনার অ্যাক্টিভিটিগুলোর অ্যাপ বার বাস্তবায়ন করতে AndroidX লাইব্রেরির Toolbar ক্লাসটি ব্যবহার করুন। AndroidX লাইব্রেরির টুলবার ব্যবহার করলে আপনার অ্যাপের আচরণ সর্বাধিক সংখ্যক ডিভাইসে সামঞ্জস্যপূর্ণ থাকে।

একটি অ্যাক্টিভিটিতে টুলবার যোগ করুন

এই ধাপগুলোতে বর্ণনা করা হয়েছে কীভাবে আপনার অ্যাক্টিভিটির অ্যাপ বার হিসেবে একটি Toolbar সেট আপ করতে হয়:
  1. AndroidX ওভারভিউ- তে বর্ণিত পদ্ধতি অনুসারে আপনার প্রজেক্টে AndroidX লাইব্রেরিটি যুক্ত করুন।
  2. নিশ্চিত করুন যে অ্যাক্টিভিটিটি AppCompatActivity এক্সটেন্ড করে:

    কোটলিন

    class MyActivity : AppCompatActivity() {
      // ...
    }

    জাভা

    public class MyActivity extends AppCompatActivity {
      // ...
    }
  3. অ্যাপ ম্যানিফেস্টে, <application> এলিমেন্টটিকে AppCompat-এর NoActionBar থিমগুলোর একটি ব্যবহার করার জন্য সেট করুন, যেমনটি নিচের উদাহরণে দেখানো হয়েছে। এই থিমগুলোর একটি ব্যবহার করলে অ্যাপটি অ্যাপ বার দেখানোর জন্য নেটিভ ActionBar ক্লাস ব্যবহার করতে পারে না।
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
  4. অ্যাক্টিভিটির লেআউটে একটি Toolbar যোগ করুন। উদাহরণস্বরূপ, নিম্নলিখিত লেআউট কোডটি একটি Toolbar যোগ করে এবং এটিকে অ্যাক্টিভিটির উপরে ভাসমান বলে মনে করায়:
    <androidx.appcompat.widget.Toolbar
       android:id="@+id/my_toolbar"
       android:layout_width="match_parent"
       android:layout_height="?attr/actionBarSize"
       android:background="?attr/colorPrimary"
       android:elevation="4dp"
       android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    অ্যাপ বারের উচ্চতা সংক্রান্ত সুপারিশের জন্য ম্যাটেরিয়াল ডিজাইন স্পেসিফিকেশন দেখুন।

    যেহেতু আপনি টুলবারটিকে অ্যাপ বার হিসেবে ব্যবহার করছেন, তাই এটিকে অ্যাক্টিভিটির লেআউটের শীর্ষে রাখুন।

  5. অ্যাক্টিভিটির onCreate() মেথডে, অ্যাক্টিভিটির setSupportActionBar() মেথডটি কল করুন এবং অ্যাক্টিভিটির টুলবারটি পাস করুন, যেমনটি নিচের উদাহরণে দেখানো হয়েছে। এই মেথডটি টুলবারটিকে অ্যাক্টিভিটির অ্যাপ বার হিসেবে সেট করে।

    কোটলিন

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // The Toolbar defined in the layout has the id "my_toolbar".
        setSupportActionBar(findViewById(R.id.my_toolbar))
    }

    জাভা

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);
    }

আপনার অ্যাপে এখন একটি বেসিক অ্যাকশন বার আছে। ডিফল্টরূপে, অ্যাকশন বারটিতে অ্যাপটির নাম এবং একটি ওভারফ্লো মেনু থাকে, যেটিতে প্রাথমিকভাবে সেটিংস আইটেমটি থাকে। ‘অ্যাকশন যোগ করুন এবং পরিচালনা করুন’ অংশে বর্ণিত পদ্ধতি অনুযায়ী আপনি অ্যাকশন বার এবং ওভারফ্লো মেনুতে আরও অ্যাকশন যোগ করতে পারেন।

অ্যাপ বার ইউটিলিটি পদ্ধতি ব্যবহার করুন

একবার আপনি টুলবারটিকে কোনো অ্যাক্টিভিটির অ্যাপ বার হিসেবে সেট করলে, আপনি AndroidX লাইব্রেরির ActionBar ক্লাসের দেওয়া ইউটিলিটি মেথডগুলো ব্যবহার করতে পারবেন। এই পদ্ধতিটি আপনাকে অ্যাপ বারটি লুকানো বা দেখানোর মতো দরকারি কাজগুলো করতে দেয়।

ActionBar ইউটিলিটি মেথডগুলো ব্যবহার করতে, অ্যাক্টিভিটির getSupportActionBar() মেথডটি কল করুন। এই মেথডটি একটি AppCompat ActionBar অবজেক্টের রেফারেন্স রিটার্ন করে। একবার সেই রেফারেন্সটি পেয়ে গেলে, আপনি অ্যাপ বারটি অ্যাডজাস্ট করার জন্য ActionBar এর যেকোনো মেথড কল করতে পারেন। উদাহরণস্বরূপ, অ্যাপ বারটি হাইড করতে, ActionBar.hide() কল করুন।