Как определить макет фрагмента из XML? - программирование
Подтвердить что ты не робот

Как определить макет фрагмента из XML?

Я пытаюсь определить макет фрагмента в XML так же, как я определил макет моего представления.

Возможно ли это? Я пробовал несколько вещей, но никто из них, похоже, не работает.

Схема моей работы выглядит следующим образом (main.xml):

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
  <fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:name="full.lommeregner.Lommeregnerrv2Activity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/lommeregnerv2">
    </fragment>   

</ListView>

Теперь, поскольку я не большой поклонник создания макетов через необработанный код Java, я попытался определить свой фрагмент следующим образом (fragment_lommeregner.xml):

  <fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:name="full.lommeregner.Lommeregnerrv2Activity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/lommeregnerv2">
       <!-- my content was located here (some textviews, buttons and so on). -->
    </fragment> 

Я что-то делаю неправильно? Как определить макет фрагмента через XML?

4b9b3361

Ответ 1

Фрагмент работает так же, как и действие, в котором вам нужен файл класса Java, который будет работать с ним. вы не можете создать фрагмент, просто создав макет фрагмента - вам нужен класс для вашего фрагмента:

  • Создайте XML-документ макета и подкласс Activity для вашей деятельности.
  • Создайте макет XML и подкласс Fragment для вашего фрагмента
  • Свяжите эти два вместе в своем макете Activity XML (или используя FragmentTransaction, если вы хотите сделать это в Java-коде).

Если вы еще этого не сделали, прочитайте, перечитайте и перескажите все на этой странице: https://developer.android.com/guide/components/fragments.html

Там много, но фрагменты являются неотъемлемой частью приложений для Android, поэтому требуется чтение. Хорошей новостью является то, что основы фрагментов довольно просты.

Ответ 2

Просто добавьте в свой тег <fragment> как свойство:

tools:layout="@layout/your_layout_xml"

И в контейнере тегов main.xml(или <fragment>) в родительский контейнер (в данном случае ListView):

xmlns:tools="http://schemas.android.com/tools"