我正在使用导航抽屉构建应用程序。我想在其中添加ic_drawer
图标。我正在使用它:
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 */
) { ... }
// Set the drawer toggle as the DrawerListener
mDrawerLayout.setDrawerListener(mDrawerToggle);
实际上,我的图标错了,而且我没有动画。我该怎么办呢?除了我的代码中的drawable.ic_drawer
,我无法找到任何东西。
屏幕如下。
空白屏幕截图。
打开菜单屏幕。
您可以在两张图片上看到它不是ic_drawer
图片。实际上,在IDEA中,我看到了正确的形象。
答案 0 :(得分:5)
确保您使用 v7 ActionBarDrawerToggle
mActionBarDrawerToggle = new ActionBarDrawerToggle(
this, your_drawer_layout, your_tool_bar, R.string.open, R.string.close
);
正如您所看到的,v7 ActionBarDraweToggle具有不同的构造函数,并且不会询问您的Icon。因为它从android资源中自动获取。
答案 1 :(得分:3)
您可以在Android Developer中引用Creating a Navigation Drawer。
很少有人跳过下面的代码。但代码显示正确的图标非常重要。
我希望你能阅读更多参考资料。
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
如果您使用的是最新的SDK,则可以使用compat-v7和工具栏。
我经验丰富的汉堡图标不显示。所以我需要其他方式。
终于用compt-v7和工具栏解决了。
答案 2 :(得分:0)
您是否在DrawerLayout
添加了ActionBarDrawerToggle
听众?如果没有,请加上这些:
mDrawerLayout.setDrawerListener(mDrawerToggle);//mDrawerLayout is DrawerLayout
答案 3 :(得分:0)
@Moinkhan是对的。您需要将构造函数从v4替换为v7中的新构造函数。替换这个旧代码:
mDrawerToggle = new ActionBarDrawerToggle(
getActivity(),
mDrawerLayout,
R.drawable.ic_drawer,
"Open drawer",
"Close drawer"
)
这个
import android.support.v7.app.ActionBarDrawerToggle;
(从.v4.app.ActionBarDrawerToggle中删除旧导入)
mDrawerToggle = new ActionBarDrawerToggle(
getActivity(),
mDrawerLayout,
"Open drawer",
"Close drawer"
);
它现在应该显示一个动画抽屉图标,在展开时变为左箭头