InflateException при попытке загрузить фрагмент [дубликат]

Поскольку вы хотите сделать это рекурсивно, вам, вероятно, лучше всего делать несколько совпадений с помощью цикла.

Само Regex плохо подходит для рекурсивного-ничего.

-1
задан rmaik 23 January 2015 в 15:41
поделиться

2 ответа

Похоже, вам не хватает атрибута name в тэгах fragment в файле макета активности. Существует два способа получить фрагмент, завышенный в вашей иерархии просмотров:

  1. Укажите все в макете XML
  2. Загрузите фрагмент в свой Java-код

Кажется, что вы смешали эти две парадигмы вместе, что и вызывает у вас проблемы.

Чтобы сделать все в XML-макете, вы должны указать name. Итак, что-то вроде этого:

<fragment
    android:name="com.my.package.for.Frag1"
    android:id="@+id/frag_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"/>

Затем вы можете удалить код из вашего метода initViews(), поскольку он больше не нужен.

Если вместо этого вы предпочли бы делать все в коде, тогда вы должны изменить свой макет, чтобы указать пустой контейнер, куда будет идти фрагмент. Например, используйте FrameLayout вместо тега fragment, например:

<FrameLayout
    android:id="@+id/frag_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"/>
2
ответ дан Scott W 16 August 2018 в 02:39
поделиться
  • 1
    пожалуйста, ознакомьтесь с разделом обновления выше, я указал атрибут имени, но я все еще получаю NPE – rmaik 23 January 2015 в 15:45

вы объявляете тэг <fragment в вашем xml

   <fragment
    android:id="@+id/frag_2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="50dp"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/frag_1"/>

, но вы не указали свойство android:name=, которое сообщает системе, какой фрагмент он должен создать. Он должен содержать полный путь к подклассу фрагментов, который вы хотите создать. Например,

android:name="path.to.Frag1"
1
ответ дан Blackbelt 16 August 2018 в 02:39
поделиться
  • 1
    пожалуйста, ознакомьтесь с разделом обновления выше, я указал атрибут имени, но я все еще получаю NPE – rmaik 23 January 2015 в 15:43
  • 2
    вы сделали это для тега <fragment? – Blackbelt 23 January 2015 в 15:46
  • 3
    о, я забыл сделать комментарий из второго фрагмента в xml, поскольку он был реализован еще. теперь он работает +1 – rmaik 23 January 2015 в 15:49
Другие вопросы по тегам:

Похожие вопросы: