【问题标题】:android - open navigation drawer by clicking the app icon?android - 通过单击应用程序图标打开导航抽屉?
【发布时间】:2013-11-20 18:00:25
【问题描述】:

我在我的应用中使用导航抽屉(您通过从屏幕左侧滑动打开的导航类型)。现在,通常你也可以通过点击应用程序图标来打开它,当我查看它时,我发现了一大堆代码可以添加到你的活动中。而且只是一个简单的按钮。我想那不正是我要找的吗?如果一个按钮真的需要这么多代码,让代码更清晰的最好方法是什么?谢谢你,也很抱歉成为这样的安卓新手。

【问题讨论】:

    标签: android button navigation drawer


    【解决方案1】:

    我也遇到了这个问题,假设您已经有 @Kernald 建议的 ActionBarDrawerToggle,您还需要将以下内容添加到您的活动中:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Pass the event to ActionBarDrawerToggle, if it returns
        // true, then it has handled the app icon touch event
        if (mDrawerToggle.onOptionsItemSelected(item)) {
          return true;
        }
        // Handle your other action bar items...
    
        return super.onOptionsItemSelected(item);
    }
    

    这让我们切换手柄按下操作栏上的图标按钮,导致抽屉滑出。

    【讨论】:

    • 谢谢!我正把头撞到墙上:)
    • 非常感谢@Rajiv Makhijani。很棒的快速解决方案。
    【解决方案2】:

    您需要的一切都在 Google 的 Navigation Drawer Guide 中进行了描述。基本上,您需要在 ActionBar 上启用“向上”操作:

    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    然后你需要将它绑定到一个 Toggle:

           mDrawerToggle = new ActionBarDrawerToggle(
                    this,                  /* host Activity */
                    mDrawerLayout,         /* DrawerLayout object */
                    R.drawable.ic_drawer,  /* nav drawer icon to replace 'Up' caret */
                    R.string.drawer_open,  /* "open drawer" description */
                    R.string.drawer_close  /* "close drawer" description */
                    ) {
    
                /** Called when a drawer has settled in a completely closed state. */
                public void onDrawerClosed(View view) {
                    getActionBar().setTitle(mTitle);
                }
    
                /** Called when a drawer has settled in a completely open state. */
                public void onDrawerOpened(View drawerView) {
                    getActionBar().setTitle(mDrawerTitle);
                }
            };
    
            // Set the drawer toggle as the DrawerListener
            mDrawerLayout.setDrawerListener(mDrawerToggle);
    

    【讨论】:

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