我在android中使用NavigationDrawer。它的工作正常。现在我想更改NavigationDrawer backbutton的图像,为此,我使用了这个mDrawerToggle.setDrawerIndicatorEnabled(false);
它隐藏默认的后退按钮图像。现在使用此mDrawerToggle.setHomeAsUpIndicator(R.mipmap.ic_launcher);
更改图像
但点击自定义导航后退按钮抽屉不工作。如何管理?
我的代码是
public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) {
containerView = getActivity().findViewById(fragmentId);
mDrawerLayout = drawerLayout;
mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerOpened(View drawerView) {
is= false;
super.onDrawerOpened(drawerView);
getActivity().invalidateOptionsMenu();
}
@Override
public void onDrawerClosed(View drawerView) {
is= true;
super.onDrawerClosed(drawerView);
getActivity().invalidateOptionsMenu();
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
}
};
mDrawerToggle.setHomeAsUpIndicator(R.mipmap.ic_launcher);
mDrawerToggle.setDrawerIndicatorEnabled(false);
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerLayout.post(new Runnable() {
@Override
public void run() {
mDrawerToggle.syncState();
}
});
}
答案 0 :(得分:0)
要更改NavigationDrawer后退按钮的图标,您需要使用图像resourceid调用以下方法:
mDrawerToggle.setHomeAsUpIndicator(resId);
不应将和setDrawerIndicatorEnabled()方法设置为false以更新图标:
mDrawerToggle.setDrawerIndicatorEnabled(false);
因为setDrawerIndicatorEnabled()
,设置为false
它会做两件事:
您也可以使用操作栏尝试:
在Android API级别18和更高版本中添加以下功能。
ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
如果您使用支持库,请尝试以下方法:
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
你也可以尝试使用样式:
“up”可供性指标由主题的homeAsUpIndicator属性中指定的drawable提供。要使用您自己的自定义版本覆盖它,它将是这样的:
<style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
</style>
如果您使用您的应用程序支持3.0之前的版本,请确保将此版本的自定义主题放在值-v11或类似值中。
如果它仍然不起作用,您可以尝试替换:
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
使用:
<item name="homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
答案 1 :(得分:0)
将此添加到选项菜单中选择的侦听器。
@覆盖
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
break;
}
return true;
}