Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓-点击应用图标打开导航抽屉?_Android_Button_Navigation_Drawer - Fatal编程技术网

Android 安卓-点击应用图标打开导航抽屉?

Android 安卓-点击应用图标打开导航抽屉?,android,button,navigation,drawer,Android,Button,Navigation,Drawer,我在应用程序中使用导航抽屉(从屏幕左侧滑动打开的导航类型)。现在,通常你也可以通过点击应用程序图标来打开它,当我查找它时,我发现有一大堆代码要添加到你的活动中。只需一个简单的按钮。我想这不正是我想要的吗?如果一个按钮真的需要这么多代码,那么让代码更清晰的最佳方法是什么?谢谢你,很抱歉你是一个android新手。你所需要的一切都在谷歌的。基本上,您需要在ActionBar上启用“up”操作: getActionBar().setDisplayHomeAsUpEnabled(true); getAc

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

你所需要的一切都在谷歌的。基本上,您需要在ActionBar上启用“up”操作:

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
然后需要将其绑定到切换:

       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);

我也遇到了这个问题,假设您已经有了@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。很棒的快速解决方案。