android - 点击应用图标打开导航抽屉?

Mar*_*ann 14 navigation android button drawer

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

Raj*_*ani 45

我也遇到了这个问题,假设你已经有@Bernald建议的ActionBarDrawerToggle,你还需要在你的Activity中添加以下内容:

@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);
}
Run Code Online (Sandbox Code Playgroud)

这是让切换按下ActionBar上的图标按钮,导致抽屉滑出.

  • 谢谢!我正撞到墙上:) (3认同)

Mar*_*say 6

您需要的一切都在Google 的" 导航抽屉指南"中进行了描述.基本上,您需要在ActionBar上启用"up"操作:

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
Run Code Online (Sandbox Code Playgroud)

然后你需要将它绑定到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);
Run Code Online (Sandbox Code Playgroud)