【发布时间】:2013-02-26 23:29:21
【问题描述】:
我在实现后退导航时遇到问题。
活动A1 启动活动A2。 A2 包含一个全屏片段:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- fragment goes here -->
</RelativeLayout>
在A2的onCreate()我在上面的容器中加载了F1片段:
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_main);
replaceFragment(new AccountHomeFragment());
}
public void replaceFragment(Fragment f){
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, f);
fragmentTransaction.addToBackStack(f.getClass().getSimpleName());
fragmentTransaction.commit();
}
在某些时候,用户点击一个按钮,F1 被F2 替换。 问题是当用户点击返回按钮时:
- 第一次点击:没有任何反应
- 第二次点击:从
F2变为A1(F1跳过)
我的期望
- 第一次点击:
F2->F1 - 第二次点击:
F1->A1
我注意到如果我在 F1 被 F2 替换之前按回:
- 第一次点击:
F1->空白屏幕 - 第二次点击:空白屏幕->
A1
【问题讨论】:
-
如您所愿,您的意思是 F2->F1 然后 F1->A1,对吧?
-
@dmon:当然。我更正了这个问题。
-
怎么加F2?你用的是 replaceFragment 方法吗?
-
@dmon: 是的,我打电话给 replaceFragment(new F2());