![](/img/trans.png)
[英]Kotlin - Handling Back Button Click in Navigation Drawer - Android
[英]Navigation Drawer back button Click Listener in android
我在android中使用NavigationDrawer。 它的工作正常。 現在我想更改NavigationDrawer mDrawerToggle.setDrawerIndicatorEnabled(false);
圖像,為此,我使用了此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();
}
});
}
要更改NavigationDrawer后退按鈕的圖標,您需要使用圖像resourceid調用以下方法:
mDrawerToggle.setHomeAsUpIndicator(resId);
和setDrawerIndicatorEnabled()方法不應設置為false來更新圖標:
mDrawerToggle.setDrawerIndicatorEnabled(false);
因為is是setDrawerIndicatorEnabled()
,所以將其設置為false
會做兩件事:
您也可以使用操作欄嘗試一下:
在Android API級別18及更高級別中添加了以下功能。
ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
如果您使用支持庫,請嘗試以下操作:
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
您也可以嘗試使用樣式:
“上”提供能力指示符由在主題的homeAsUpIndicator屬性中指定的可繪制對象提供。 要用您自己的自定義版本覆蓋它,將是這樣的:
<style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
</style>
如果您的應用程序支持3.0之前的版本,請確保將此版本的自定義主題放在values-v11或類似的值中。
如果仍然無法使用,可以嘗試更換:
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
有:
<item name="homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
將此添加到您的選項菜單中選定的偵聽器。
@覆蓋
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
break;
}
return true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.