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

Sun*_*Sun 32 android navigation-drawer

如何使用按钮显示/隐藏导航抽屉,我已使用 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"
    />
Run Code Online (Sandbox Code Playgroud)

编辑:

     btnMenu.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            drawer.openDrawer(Gravity.LEFT);                
        }
    });
Run Code Online (Sandbox Code Playgroud)

我知道要关闭我必须打电话drawer.closeDrawer(Gravity.LEFT);但我必须放置此代码?

Bla*_*elt 58

获取对该引用的引用DrawerLayout并调用closeDrawer(int)来关闭它,并调用openDrawer(int)来打开它.int参数指的是引力.在你的情况下,它应该是int/ GravityCompat.LEFT,因为相应于您发布的屏幕截图,您的 GravityCompat.START打开和关闭在左侧

  • 使用相同的按钮.`if(drawer.isDrawerOpen(Gravity.LEFT)){// close} else {// open}` (5认同)

小智 12

关闭抽屉:

drawer.CloseDrawer((int)GravityFlags.Left);
Run Code Online (Sandbox Code Playgroud)

打开抽屉:

drawer.OpenDrawer((int)GravityFlags.Left);
Run Code Online (Sandbox Code Playgroud)


小智 6

打开抽屉

DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.openDrawer(GravityCompat.START);
Run Code Online (Sandbox Code Playgroud)

关闭抽屉

DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
Run Code Online (Sandbox Code Playgroud)