按下项目时如何关闭导航抽屉?

Posted

技术标签:

【中文标题】按下项目时如何关闭导航抽屉?【英文标题】:How to close navigation drawer when an item is pressed from it? 【发布时间】:2013-10-12 05:41:30 【问题描述】:

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

【问题讨论】:

你使用哪个库来获取导航抽屉? 【参考方案1】:

知道了!

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

工作得很好。

【讨论】:

没有动画可以关闭吗? Hamzeh - mDrawerLayout.closeDrawer(Gravity.LEFT, false);会导致在没有动画的情况下关闭它 mDrawerLayout.closeDrawer(GravityCompat.START, false);【参考方案2】:

对我来说这个工作 -

mDrawerLayout.closeDrawer(Gravity.START, false);

【讨论】:

【参考方案3】:
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);
  

【讨论】:

【参考方案4】:

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

@Override
public void onBackPressed() 
    if (this.mDrawerLayout.isDrawerOpen(GravityCompat.START)) 
        this.mDrawerLayout.closeDrawer(GravityCompat.START);
     else 
        super.onBackPressed();
    

【讨论】:

【参考方案5】:
closeDrawer();//when you want to call

public void closeDrawer() 
    if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) 
        mDrawerLayout.closeDrawer(GravityCompat.START);
    

【讨论】:

【参考方案6】:

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

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

        
   mDrawerLayout.closeDrawers();
   return true;

【讨论】:

【参考方案7】:

这项工作,kotlin 代码

drawerLayout.closeDrawer(GravityCompat.START)

【讨论】:

您好,感谢您的回答,但它与this one等多个其他答案重复【参考方案8】:

drawerLayout.closeDrawer(GravityCompat.START);

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

【讨论】:

以上是关于按下项目时如何关闭导航抽屉?的主要内容,如果未能解决你的问题,请参考以下文章

如何制作导航抽屉以关闭具有选定项目的组并根据URL打开组

如何使用导航抽屉打开和关闭更改按钮图像

如何在导航抽屉中添加活动

如何默认导航抽屉在移动设备上关闭并在桌面上打开?

如何使向上按钮返回而不是打开导航抽屉

按下标签栏项目时如何关闭视图?