在我的应用程序中,我有一个活动,我在运行时添加两个片段.我需要同时交换这两个片段.片段1包含一个按钮,我希望当我点击该按钮时,片段1移动到屏幕的右侧,而其他片段移动到活动的左侧.
在按钮的onClick方法我试过这样的事情
@Override
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment newFragment = getFragmentManager().findFragmentById(R.id.pageA);
ft.remove(newFragment);
Fragment newFragmentB = getFragmentManager().findFragmentById(R.id.pageB);
ft.remove(newFragmentB);
ft.add(R.id.pageB, newFragment);
ft.add(R.id.pageA, newFragmentB);
ft.addToBackStack(null);
ft.commit();
}
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误
java.lang.IllegalStateException: Can't change container ID of fragment PageA{40653da0 #0 id=0x7f060001}: was 2131099649 now 2131099650
Run Code Online (Sandbox Code Playgroud)
当我点击页面A上的按钮然后页面A和页面B的位置应相互交换时,我想要这样的东西.

我有一个类似的问题(IllegalStateException:无法更改片段的容器 ID),我通过交换容器而不是片段解决了...尽管如此,我仍然不知道是否可以直接交换片段。正如我在上述帖子中所写,它似乎只适用于 ics!
| 归档时间: |
|
| 查看次数: |
2892 次 |
| 最近记录: |