6

这个人基本上遇到了我遇到的同样问题,但是,提供的解决方案没有帮助,也对我不起作用,因为我的代码实际上是在调用 mDrawerToggle.sycnState() (在延迟的 Runnable 中)。

我也尝试将它添加到我的 Fragment 中的 onActivityCreated 中,这似乎没有做任何事情。不知道 syncState 的确切作用,我不知道它是否正在同步打开的状态(模板代码默认情况下会发生这种情况),然后当抽屉手动关闭时它永远不会再次同步。

我会发布代码,但您可以通过在 Android Studio (1.2.2) 中创建一个新项目,选择 Navigation Drawer Activity,然后简单地运行该项目来测试这一点 - 无需进行任何更改。您会看到唯一的图标是 <- 箭头。我什至设置了断点来检查 ActionBarDrawerToggle 对象,该对象实际上在其内存中具有用于绘制图标的汉堡包图标,这让我更加困惑!

我在我的智慧在这里结束。

4

1 回答 1

20

我只是想出了一个解决方案,以防其他人遇到这个问题:

将片段顶部的导入从

import android.support.v4.app.ActionBarDrawerToggle;

import android.support.v7.app.ActionBarDrawerToggle;

然后将 setUp 中的代码从

mDrawerToggle = new ActionBarDrawerToggle(
            getActivity(),                    /* host Activity */
            mDrawerLayout,                    /* DrawerLayout object */
            R.drawable.ic_drawer,             /* nav drawer image to replace 'Up' caret */
            R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
            R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
    )

mDrawerToggle = new ActionBarDrawerToggle(
            getActivity(),                    /* host Activity */
            mDrawerLayout,                    /* DrawerLayout object */
            R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
            R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
    )
于 2015-06-12T17:03:37.933 回答