ActionBarDrawerToggle在第一次滑动之前不会打开抽屉

时间:2017-02-16 20:29:04

标签: android drawerlayout

我正在使用Google Design Support Library和DrawerLayout。

设定:

final DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
NavigationView drawer = (NavigationView) findViewById(R.id.drawer);
if(mDrawerToggle == null) {
    mDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, mToolbar, R.string.open, R.string.feather_close);
    drawerLayout.addDrawerListener(mDrawerToggle);
    mDrawerToggle.syncState();
}

当我启动我的应用程序时,会显示汉堡图标的涟漪效果,但抽屉未打开。当我从左侧滑动至少一次打开抽屉时,汉堡包图标适用于整个运行时。 我没有在切换按钮或抽屉本身上有特殊的监听器,也没有调用onOptionsItemSelected方法。

请帮我看看会发生什么。

谢谢。

2 个答案:

答案 0 :(得分:8)

我发现了:我在NavigationView中意外地遇到了android:visibility="gone"。 多么怪异的副作用。

答案 1 :(得分:-1)

我用它解决了它:

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);