为什么我的片段没有在第4步显示?我已经将片段添加到后台堆栈,所以为什么(当Back按钮看起来已经知道它存在时)它是否显示片段?
这是我在活动2中用来打开片段A的代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_profile_edit);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
transaction.addToBackStack(null);
transaction.add(android.R.id.content, new MyFragment());
transaction.commit();
}
这是打开Fragment B的代码
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
transaction.add(android.R.id.content, new MyOtherFragment());
transaction.commit();
答案 0 :(得分:10)
您是否尝试过transaction.replace(...)
代替transaction.add(...)
?这应该工作。我猜是因为如果你只是在另一个上面添加一个片段,它就不会看到事务需要从片段A返回。
修改强> 问题的实际答案如下:评论中应该使用addToBackStack()作为替换的片段,而不是被替换的片段。