我在实施后退导航方面遇到了问题。
活动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
&#39; s 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
- &gt; F1
F1
- &gt; A1
我注意到如果我在F2替换为F2之前按回来:
F1
- &gt;空白屏幕A1
答案 0 :(得分:0)
我认为您的问题可能是由于将第一个片段添加到Backstack而引起的。在您onCreate
的{{1}}中,您可以自动添加replaceFragment
。只需手动添加片段而不需要addToBackStack
调用,并使用replaceFragment
函数进行所有后续片段事务。