ইউজার স্ক্রিনের বাম কোনা থেকে বা এর অভিমুখে একটি সোয়াইপ গেশচার দিয়ে নেভিগেশন ড্রয়ার ওপেন বা ক্লোজ করাতে পারে, কিন্তু আপনি যদি ActionBar ব্যবহার করতে থাকেন, আপনার উচিত ইউজারকে তখনও অ্যাপ আইকন টাচ করার মাধ্যমে এটাকে ওপেন এবং ক্লোজ করতে দেয়া। এবং অ্যাপ আইকনের উচিত একটি বিশেষ আইকন সহকারে নেভিগেশন ড্রয়ারের উপস্থিতি নির্দেশ করা। পূর্ববর্তী অধ্যায়ে আলোচনা করা ActionBarDrawerToggle ব্যবহার করার মাধ্যমে আপনি এই সকল আচরণ বাস্তবাযন করতে পারেন।
ActionBarDrawerToggle কে কাজ করাতে, এর একটি ইনসটেন্স তৈরী করুন, এর একটি কনস্ট্রাক্টর দিয়ে, যার নিচের আরগুমেন্টগুলোকে প্রয়োজন:
স্ট্যান্ডার্ড নেভিগেশন ড্রয়ার আইকন Download the Action Bar Icon Pack (http://developer.android.com/dowload/design/Android_Design_Icons_20130926.zip) এ পাওয়া যায়।
এরপর আপনার ড্রয়ার লিসেনার হিসাবে 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) পেজের উপরের থেকে নমুনা ডাউনলোড ককরুন।