导航回两个片段xamarin android之间

时间:2016-04-22 15:48:32

标签: xamarin xamarin.android

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;
  • Onefragment
  • Twofragment

从第二个Fragment导航回第一个片段(在工具栏上导航回来)。??? MainActivity我在工具栏上有一个按钮菜单。 当它站在第二个片段时,我想将菜单图标替换为后退图标。

2 个答案:

答案 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