2016-04-22 42 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