Android添加片段没有交易

时间:2011-10-04 04:20:23

标签: android android-fragments

我正试图在我的活动中动态地用另一个片段替换片段。

看起来你不能用动态创建的片段替换布局文件中静态定义的片段: Android: can't replace one fragment with another

建议的解决方案是在onCreate方法中动态添加原始Fragment:

public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_layout);

    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ShelfFragment shelves = new ShelfFragment();
    ft.add(R.id.left_fragment, shelves);
    ft.addToBackStack(null);
    ft.commit();
    }

这样可行,但是当用户按下后退按钮时,原始的Fragment被删除而不是关闭Activity,因为FragmentTransaction将它添加到FragmentManager堆栈。

有没有办法在没有事务/堆栈条目的情况下将初始片段添加到我的活动中?

1 个答案:

答案 0 :(得分:3)

不要将它添加到Backstack中。删除ft.addToBackStack(null);行,如果您希望能够使用后退按钮返回上一个状态,则只需要此行。