相关疑难解决方法(0)

IllegalStateException:无法更改Fragment的容器ID

Android平台:3.1

我试图将一个片段从容器A移动到容器B.下面是完成此操作的代码:

private void reattach(int newContainerId, Fragment frag, String tag) {

      if (frag == null || !frag.isAdded() || (frag.getId() == newContainerId)) { return; }

      final FragmentManager fm = getFragmentManager();
      FragmentTransaction ft = fm.beginTransaction();
      ft.remove(frag);     //stacco il frammento dal container A
      ft.commit();
      fm.executePendingTransactions();

      ft = fm.beginTransaction();
      ft.add(newContainerId, frag, tag); //attacco il frammento sul container D
      ft.commit();
      fm.executePendingTransactions();   
   }
Run Code Online (Sandbox Code Playgroud)

当我运行系统时,我得到以下IllegalStateException:

03-26 00:13:14.829: E/AndroidRuntime(30090): java.lang.RuntimeException: Unable to start activity ComponentInfo{eu.areamobile.apps.sfa/eu.areamobile.apps.sfa.activity.HomeActivity}: java.lang.IllegalStateException: Can't change container ID of fragment FragmentHomeController{408202a8 id=0x7f050010 HomeController}: was 2131034128 now …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

26
推荐指数
3
解决办法
2万
查看次数

同时交换两个片段

在我的应用程序中,我有一个活动,我在运行时添加两个片段.我需要同时交换这两个片段.片段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的位置应相互交换时,我想要这样的东西.

片段的UI

android

5
推荐指数
1
解决办法
2892
查看次数

标签 统计

android ×2

android-fragments ×1