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

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

【问题讨论】:

  • 你使用哪个库来获取导航抽屉?

标签: android navigation-drawer


【解决方案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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多