我试图在ActionBar中显示Icon_drawble,但是当R.drawable.ic_drawer位于第一个位置时,在操作栏中显示返回箭头。
像这样:
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle(
this,
mDrawerLayout,
R.drawable.ic_drawer,
R.string.drawer_open,
R.string.drawer_close
) {
我需要显示这样的内容,但上面的代码不起作用。
如果我将R.drawable.ic_drawer更改为其他位置,则会给出以下logcat错误。
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle(
this,
mDrawerLayout,
R.string.drawer_open,
R.drawable.ic_drawer,//another position
R.string.drawer_close
)
logcat的:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.navegatiodrawer/com.example.navegatiodrawer.MainActivity}: android.content.res.Resources$NotFoundException: File Open navigation drawer from drawable resource ID
答案 0 :(得分:1)
这似乎是最近版本的AppCompat库中的一个错误。
部分混淆可能是由于Android Studio的新项目向导在您创建新的导航抽屉活动时生成了错误的代码 - 它使用了v4 support library ActionBarDrawerToggle
,这是不推荐使用的。相反,它应该使用v7 support library ActionBarDrawerToggle
。
您有两种选择:
最好的选择是切换到v7 ActionBarDrawerToggle
。为此,请将导入更改为使用android.support.v7.app.ActionBarDrawerToggle
而不是android.support.v4.app.ActionBarDrawerToggle
。您需要进行的唯一其他更改是完全删除ic_drawer
参数 - 较新版本的切换会自动生成您正在寻找的汉堡包。
如果您坚持使用v4切换或自定义图标,则可以恢复为旧版本的支持库。在创建新的导航抽屉活动时使用默认生成的项目,我能够通过恢复到build.gradle中的com.android.support:appcompat-v7:22.1.0
来回避这个错误。
已有a bug in the issue tracker用于更新向导生成的代码。我不希望v4切换得到修复,因为它已被弃用。