Как программно отображать / скрыть навигационный ящик

Как я могу использовать кнопку для отображения / скрытия навигационного ящика, я использовал эту ссылку SO для создания и управления навигационным ящиком.

Теперь я использую (Проведите по экрану справа – чтобы показать) и (Проведите по экрану справа налево – чтобы скрыть)

Как я могу показать / Скрыть ящик с помощью кнопки, выделенной ниже снимок экрана:

Введите описание изображения здесь

header_home.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/header_layout" android:gravity="fill_horizontal" android:layout_gravity="top|center"> <TextView android:id="@+id/textHeader" android:text="Home" android:textColor="#ffffff" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_header" /> <ImageButton android:id="@+id/btnDrawer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:adjustViewBounds="true" android:background="@drawable/icon_drawer" android:contentDescription="@string/app_name" /> 

Отредактировано:

  btnMenu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub drawer.openDrawer(Gravity.LEFT); } }); 

Я знаю, чтобы закрыть, мне нужно вызвать drawer.closeDrawer(Gravity.LEFT); Но где я должен разместить этот код?

Возьмите ссылку на DrawerLayout и вызовите closeDrawer (int), чтобы закрыть его и openDrawer (int), чтобы открыть его. Параметр int указывает на гравитацию. В вашем случае это должен быть Gravity.LEFT , потому что в соответствии с опубликованным скриншотом ваш DrawerLayout открывается и закрывается слева

Закрыть ящик:

 drawer.CloseDrawer((int)GravityFlags.Left); 

Открыть ящик:

 drawer.OpenDrawer((int)GravityFlags.Left); 

Если вы используете меню раздвижного ящика, и вы хотите скрыть меню, когда оно открыто (при перетаскивании справа налево). Затем мы должны иметь дело с listview object ontouch listener. Код будет таким.

  //((( When we drage from Right to left then menu hide )))) lvMenu.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: toggleMenu(v); break; case MotionEvent.ACTION_UP: //showtoast("up"); break; default: return false; } return false; } }); public void toggleMenu(View v) { mLayout.toggleMenu(); } 

Для полного кода вы можете поместить здесь комментарий, если у вас возникли проблемы