2016-04-22 109 views
0

MainActivity导航背面有两个片段之间xamarin安卓

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

从第二个片段返回到第一个片段(导航回到工具栏上)。 MainActivity我在工具栏上有一个按钮菜单。 当我站在第二个片段时,我想将菜单图标替换回图标。

回答

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; 
     } 
0

在你的MainActivity为此在OnCreate

SupportFragmentManager.BackStackChanged += HandleBackstackChanged; 

落实HandleBackstackChanged这样的方法

private void HandleBackstackChanged(object sender, EventArgs e) 
{ 
    ActionBar.SetDisplayHomeAsUpEnabled (SupportFragmentManager.BackStackEntryCount > 0); 
} 

这将根据FragmentManager的BackStack计数在Menu按钮和Back按钮之间切换。

NOTE: 我假设您正在使用支持库向后兼容Fragments。如果您没有使用支持库,只需使用FragmentManger而不是SupportFragmentManager