MainActivity
ActionBar.SetHomeAsUpIndicator (Resource.Drawable.ic_menu_white_24dp);
ActionBar.SetDisplayHomeAsUpEnabled (true);
drawerLayout = FindViewById<DrawerLayout> (Resource.Id.drawer_layout);
navigationView = FindViewById<NavigationView> (Resource.Id.nav_view);
事件点击navigatonView
CreateFragments();
LoadInditialFragment ();
navigationView.NavigationItemSelected += NavigationView_NavigationItemSelected;
从第二个Fragment导航回第一个片段(在工具栏上导航回来)。??? MainActivity我在工具栏上有一个按钮菜单。 当它站在第二个片段时,我想将菜单图标替换为后退图标。
答案 0 :(得分:0)
下载后退箭头并另存为navBack.png
然后在SwitchFragment
方法中我们在片段之间导航
switch (FragmentId) {
case Resource.Id.nav_home:
ActionBar.SetHomeAsUpIndicator (Resource.Drawable.ic_menu_white_24dp);
transaction.Show (homeFragment);
transaction.Commit ();
break;
case Resource.Id.nav_genre:
ActionBar.SetHomeAsUpIndicator (Resource.Drawable.navBack);
transaction.Show (genresFragment);
transaction.Commit ();
break;
}
答案 1 :(得分:0)
在您的MainActivity中,在OnCreate
:
SupportFragmentManager.BackStackChanged += HandleBackstackChanged;
像这样实施HandleBackstackChanged
方法
private void HandleBackstackChanged(object sender, EventArgs e)
{
ActionBar.SetDisplayHomeAsUpEnabled (SupportFragmentManager.BackStackEntryCount > 0);
}
这将根据FragmentManager的BackStack计数在Menu
按钮和Back
按钮之间切换。
注意:强>
我假设您使用支持库来向后兼容Fragments
。如果您没有使用支持库,只需使用FragmentManger
代替SupportFragmentManager
。