Дубликат идентификатора с фрагментом на странице PagerAdapter - PullRequest
5 голосов
/ 16 марта 2012

У меня возникла проблема с адаптером страницы и фрагментами.

У меня есть PagerAdapter, и на каждой странице я хочу разместить фрагмент. на XML-макете страницы я использую этот код для добавления фрагмента:

<fragment android:id="@+id/fragment1"
    android:name="de.worldcup.android.ui.fragments.GroupTableFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

при запуске приложения происходит сбой, когда он пытается создать вторую страницу PagerAdapter (во второй раз вызывается метод instantiateItem) в строке, когда я пытаюсь раздуть макет xml страницы.

View v = inflater.inflate(R.layout.group_activity_item, null);

ошибка:

03-15 21:57:34.795: E/AndroidRuntime(6257): Caused by: java.lang.IllegalArgumentException: Binary XML file line #20: Duplicate id 0x7f050043, tag null, or parent id 0x0 with another fragment for de.worldcup.android.ui.fragments.GroupTableFragment

Я посмотрел идентификатор 0x7f050043 -> это идентификатор @ + id / фрагмент1.

есть идеи как это исправить?

спасибо:)

Ответы [ 2 ]

3 голосов
/ 12 января 2013

Столкнувшись с той же самой проблемой, я обнаружил следующее: «Примечание. Нельзя раздувать макет на фрагмент, если этот макет включает в себя. Вложенные фрагменты поддерживаются только при динамическом добавлении к фрагменту». В документации. Короче говоря, динамически создавайте свою архитектуру фрагментов для решения проблемы.

0 голосов
/ 06 апреля 2012

У меня была такая же проблема. Я не думаю, что мы не можем иметь 2 фрагмента с одинаковым идентификатором на странице.

Что я делаю (но я думаю, что это не лучшее решение, но оно работает): Создайте один макет для каждого фрагмента с другим идентификатором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...