[英]Fragment back navigation
我有一个AppCompatActivity
Android.Support.V7.Widget.Toolbar myToolbar = (Android.Support.V7.Widget.Toolbar)FindViewById(Resource.Id.my_toolbar);
SetSupportActionBar(myToolbar);
SupportActionBar.SetDisplayHomeAsUpEnabled(true);
我在此活动中使用片段来更改工具栏下显示的内容。 我希望将每个片段(在SupportFragmentManager.BeginTransaction().Replace(Resource.Id.content, myFragment).Commit()
)推入堆栈,以便在工具栏上的后退按钮触摸或android后退按钮按下时弹出并显示。 怎么做?
我通过在活动中重写OnOptionsItemSelected解决了这一问题:
public override bool OnOptionsItemSelected(IMenuItem item)
{
if (SupportFragmentManager.BackStackEntryCount == 0)
{
return base.OnOptionsItemSelected(item);
}
SupportFragmentManager.PopBackStack();
return true;
}
注意:无需覆盖OnBackPressed。
用这个 :
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(containerId, fragment, fragment.getClass().getSimpleName());
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
@Override
public void onBackPressed() { //or use on menu item clicked
FragmentManager fragmentManager = getSupportFragmentManager();
if (fragmentManager.getBackStackEntryCount() > 0) {
fragmentManager.popBackStack();
}else {
super.onBackPressed();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.