如何以编程方式显示/隐藏导航抽屉

我如何使用button来显示/隐藏导航抽屉,我用这个 SO链接来创build和pipe理导航抽屉。

现在我正在使用(从左向右滑动 – 显示)和(从右向左滑动 – 隐藏)

如何显示/隐藏抽屉使用下面突出显示的button截图:

在这里输入图像说明

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); } }); 

我知道要closures我必须调用drawer.closeDrawer(Gravity.LEFT); 但是我必须放置这个代码?

Solutions Collecting From Web of "如何以编程方式显示/隐藏导航抽屉"

抓取DrawerLayout的引用,并调用closeDrawer(int)来closures它,并打开DrawDrawer(int)来打开它。 int参数指的是重力。 在你的情况下,它应该是Gravity.LEFT ,因为根据你张贴的截图,你的DrawerLayout打开和closures在左边

closures抽屉:

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

打开抽屉:

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

如果您正在使用“滑动抽屉菜单”,并且想要在菜单打开时隐藏菜单(从右向左拖动时)。 然后我们必须处理listview对象的ontouch监听器。 代码将是这样的。

  //((( 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(); } 

有关完整的代码,如果您有任何问题,可以在这里发表评论