Изменить макет на Соты с фрагментами - PullRequest
1 голос
/ 12 ноября 2011

В моем приложении у меня есть три вкладки на панели действий.

Tab A : contains 2 fragments
Tab B : contains a WebViewFragment
Tab C : contains a WebViewFragment

Теперь я использую глобальный макет, содержащий LinearLayout.Я раздуваю правильный макет в LinearLayout в соответствии с вкладкой.Но когда я переключаюсь между B -> A, я получаю эту ошибку:

Caused by: java.lang.IllegalArgumentException: Binary XML file line #8: Duplicate id 0x7f0a0002, tag null, or parent id 0xffffffff with another fragment for com.myapp.CategoriesFragment

Каково лучшее решение, чтобы справиться с этим?

Я попытался удалить AllViews / reAdd макета, ноЯ получаю это исключение:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

Я думаю, что я не выбрал правильное решение.Спасибо за ваши ответы

1 Ответ

3 голосов
/ 12 ноября 2011

Вы можете выбрать внутренний контейнер для хранения фрагментов. См. Пример макета ниже

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

    <LinearLayout android:id="@+id/fragment_container"    
          xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical" android:layout_width="fill_parent"
      android:layout_height="wrap_content"/>
</LinearLayout>
...