android - 通过单击应用程序图标打开导航抽屉?

Posted

技术标签:

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

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

【问题讨论】:

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

【讨论】:

以上是关于android - 通过单击应用程序图标打开导航抽屉?的主要内容,如果未能解决你的问题,请参考以下文章

通过单击应用程序图标(来自后台)打开时反应本机android应用程序重新启动

如何在Android中单击图标时打开侧栏?

如何处理后退按钮android以退出应用程序并在首页中打开时关闭本机导航侧菜单

打开 NavigationView 仅单击左上角图标,但不使用 swype 手势

单击工具栏上的汉堡包图标不会打开导航抽屉

如何在主页中打开后退按钮 android 以退出应用程序并关闭反应本机导航侧菜单