Фрагменты Android

Чтобы понять эту статью, вам нужно знать, что фрагмент — это компонент многократного использования, у него есть файл компоновки, который декларирует его пользовательский интерфейс и другие основные вещи. Я покажу вам, как использовать его с первого принципа.

Создание фрагментов

Все фрагменты должны иметь публичный конструктор без параметров (я буду называть его ‘public no-arg constructor’). Если вы создадите класс фрагмента без конструктора, вы получите исключение во время выполнения. Java автоматически генерирует конструктор public no-arg во время выполнения, если в классе нет других конструкторов, но если вы объявите в классе другой конструктор, вам придется объявить конструктор public no-arg самостоятельно.

У фрагментов есть метод onCreateView(). В этом методе происходит раздувание макета фрагмента. Подпись и тело метода обычно выглядят следующим образом:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.<layoutFileName>,container, false);
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Разбивка кода
Мы видим, что метод принимает три аргумента — экземпляр LayoutInflater, используемый для раздувания или привязки нужного вам макета к компоненту, ViewGroup, представляющий часть макета активности, на которую будет раздуваться фрагмент, и Bundle для сохранения состояния экземпляра.

Внутри тела метода LayoutInflater вызывает свой метод inflate(). Его метод inflate принимает 3 аргумента:

  1. Макет, который вы хотите раздуть
  2. ViewGroup, переданный в onCeateView()
  3. булево значение attachToRoot.

В итоге, объект LayoutInflater создает объект View, а метод onCreateView возвращает созданный View.

Добавление фрагмента в деятельность

Чтобы добавить фрагмент в макет активности, мы добавляем тег <fragment/> в xml-файл макета активности. Свойство name тега fragment должно быть полным именем класса фрагмента, который мы хотим связать с макетом.

<fragment
    android:name="com.example.demoapp.ExampleFragment"
    android:layout_width="match_parent" />
Вход в полноэкранный режим Выход из полноэкранного режима

Приведенный выше код предполагает, что мы создаем приложение с именем пакета com.example.demoapp и что имя класса фрагмента будет либо ExampleFragment.java, либо ExampleFragment.kt.

Вы можете применить другие обычные xml свойства к вашему тегу <fragment/>. Если в вашей деятельности нет других представлений, ваш фрагмент может быть ее корневым макетом.

Далее: Получение взаимодействия между активностью и фрагментом

Оцените статью
devanswers.ru
Добавить комментарий