我想实现的场景:
- 加载带有两个框架容器(用于列表项和详细信息)的活动。
- 在应用启动时,在listFrame中添加listFragment和一些初始的infoFragment在detailsFrame容器中。
- 浏览列表项时,不需要将每个详细事务添加到返回堆栈中(只想保留infoFragment在堆栈中)。
- 当用户按下返回按钮(后退导航),他会回到在启动时添加的初始infoFragment。
- 如果顺序的后退导航,则退出应用程序。
我的代码:
protected override void OnCreate(Bundle savedInstanceState)
{
...
var listFrag = new ListFragment();
var infoFrag = new InfoFragment();
var trans = FragmentManager.BeginTransaction();
trans.Add(Resource.Id.listFrame, listFrag);
trans.Add(Resource.Id.detailsFrame, infoFrag);
trans.Commit();
...
}
public void OnItemSelected(int id)
{
var detailsFrag = DetailFragment.NewInstance(id);
var trans = FragmentManager.BeginTransaction();
trans.Replace(Resource.Id.detailsFrame, detailsFrag);
if (FragmentManager.BackStackEntryCount == 0)
{
trans.AddToBackStack(null);
}
trans.Commit();
}
我的问题:
点击返回按钮后,infoFrag 与之前的 detailFrag 重叠了!为什么会这样?