我的操作栏初始化我的图标有一个简单的问题。
我使用的是Android SDK 5,并且由于android.support.v4.app.ActionBarDrawerToggle;
已被弃用,我导入了v7支持,并使用以下内容替换了我的导入:android.support.v7.app.ActionBarDrawerToggle;
即与v7相同的包装。
现在,当我初始化ActionBarDrawerToggle对象以与从DrawerLayout
导入的import android.support.v4.widget.DrawerLayout;
对象关联时,我被迫删除一个参数,这似乎没问题(虽然不知道为什么!)。
但是我的图标没有进入我的ActionBar。
这是我的ActionBarDrawerToggle对象的初始化:
mActionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout,
R.drawable.ic_drawer, R.string.drawer_open) {
/** Called when a drawer has settled in a completely closed state. */
@Override
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
/** Called when a drawer has settled in a completely open state. */
@Override
public void onDrawerOpened(View view) {
super.onDrawerOpened(view);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
我的资源中有图像R.drawable.ic_drawer
我似乎无法找到为什么我的图标没有出现在v7中。
P.S。当我切换回v4导入并为切换对象初始化添加额外的参数(不得不使用丑陋的不赞成交叉线)时,代码工作得非常好,图标出现但不在v7中。
提前感谢:)
答案 0 :(得分:8)
实际上,如果你看一下新v7.ActionBarDrawerToggle的javadoc,你就会意识到新类没有提供构造函数,它将Drawable作为参数 - 你提供Drawable的第三个参数是String resourse描述打开抽屉。如果要设置自定义图标,则必须使用另一个ActionBarDrawerToggle构造函数:
ActionBarDrawerToggle(Activity activity, DrawerLayout drawerLayout, Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes)
在这种情况下,工具栏的导航图标将用作抽屉图标
答案 1 :(得分:1)
虽然不推荐使用v4.ActionBarDrawerToggle,但您可以使用其他方法更改图标,例如:
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu_drawer);