按下项目时如何关闭导航抽屉?
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
【讨论】:
以上是关于按下项目时如何关闭导航抽屉?的主要内容,如果未能解决你的问题,请参考以下文章