86

理想情况下,导航抽屉应该在按下某个项目后关闭,但它不会自动发生。怎么做 ?谢谢!

4

8 回答 8

246

知道了!

private DrawerLayout mDrawerLayout;
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerLayout.closeDrawers();

工作得很好。

于 2013-10-05T07:49:16.633 回答
13

对我来说,这个工作 -

mDrawerLayout.closeDrawer(Gravity.START, false);
于 2018-02-21T03:19:01.400 回答
8
DrawerLayout mDrawerLayout= (DrawerLayout) findViewById(R.id.drawer_layout)

closeDrawer(); // called when you want to close

public void closeDrawer() {
  if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
    mDrawerLayout.closeDrawer(GravityCompat.START);
  }
}
于 2019-06-26T05:57:55.000 回答
4
closeDrawer();//when you want to call

public void closeDrawer() {
    if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        mDrawerLayout.closeDrawer(GravityCompat.START);
    }
}
于 2019-06-26T05:53:17.440 回答
4

如果你有 mDrawerLayout 作为你的抽屉布局,你可以在它打开时关闭它。

@Override
public void onBackPressed() {
    if (this.mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        this.mDrawerLayout.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}
于 2020-02-02T14:19:08.573 回答
3

在开关盒结束的 onNavigationItemSelected 的右下角,您应该纠正它。mDrawerLayout.closeDrawers();

public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){

        }
   mDrawerLayout.closeDrawers();
   return true;
}
于 2019-07-20T15:23:21.087 回答
1

这项工作,kotlin 代码

drawerLayout.closeDrawer(GravityCompat.START)
于 2021-08-25T16:54:50.063 回答
-1

drawerLayout.closeDrawer(GravityCompat.START);

这行代码对我有用:) ps。它适用于 Java 代码,但我认为它也适用于 Kotlin

于 2021-10-29T14:50:31.823 回答