বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

অ্যাপ আইকন দিয়ে ওপেন এবং ক্লোজ করা

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

ActionBarDrawerToggle কে কাজ করাতে, এর একটি ইনসটেন্স তৈরী করুন, এর একটি কনস্ট্রাক্টর দিয়ে, যার নিচের আরগুমেন্টগুলোকে প্রয়োজন:

  • Activity যা ড্রয়ারকে ধারণ করে
  • The DrawerLayout
  • ড্রয়ার ইন্ডিকেটর হিসাবে করতে একটি ড্রয়েবল রিসোর্স

স্ট্যান্ডার্ড নেভিগেশন ড্রয়ার আইকন Download the Action Bar Icon Pack (http://developer.android.com/dowload/design/Android_Design_Icons_20130926.zip) এ পাওয়া যায়।

  • "open drawer" একশন আরোচনা করতে একটি স্ট্রিং রিসোর্স (প্রবেশযোগ্য তার জন্য)
  • "close drawer" একশন আরোচনা করতে একটি স্ট্রিং রিসোর্স (প্রবেশযোগ্য তার জন্য)

এরপর আপনার ড্রয়ার লিসেনার হিসাবে ActionBarDrawerToggle এর একটি সাবক্লাস তৈরী করুন বা না করুন, আপনাকে আপনার একটিভিটি লাইফসাইকেল সময়কাল জুড়ে কিছু স্থানে আপনার ActionBarDrawerToggle কল করা প্রয়োজন:

public class MainActivity extends Activity {
    private DrawerLayout mDrawerLayout;
    private ActionBarDrawerToggle mDrawerToggle;
    ...

    public void onCreate(Bundle savedInstanceState) {
        ...

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerToggle = new ActionBarDrawerToggle(
                this,                  /* host Activity */
                mDrawerLayout,         /* DrawerLayout object */
                R.drawable.ic_drawer,  /* nav drawer icon to replace 'Up' caret */
                R.string.drawer_open,  /* "open drawer" description */
                R.string.drawer_close  /* "close drawer" description */
                ) {

            /** Called when a drawer has settled in a completely closed state. */
            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);
                getActionBar().setTitle(mTitle);
            }

            /** Called when a drawer has settled in a completely open state. */
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                getActionBar().setTitle(mDrawerTitle);
            }
        };

        // Set the drawer toggle as the DrawerListener
        mDrawerLayout.setDrawerListener(mDrawerToggle);

        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);
    }

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mDrawerToggle.syncState();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        mDrawerToggle.onConfigurationChanged(newConfig);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Pass the event to ActionBarDrawerToggle, if it returns
        // true, then it has handled the app icon touch event
        if (mDrawerToggle.onOptionsItemSelected(item)) {
          return true;
        }
        // Handle your other action bar items...

        return super.onOptionsItemSelected(item);
    }

    ...
}

একটি নেভিগেশন ড্রয়ারের সম্পূর্ণ নমুনার জন্য এই লিংক (http://developer.android.com/training/implementing-navigation/nav-drawer.html#top) পেজের উপরের থেকে নমুনা ডাউনলোড ককরুন।