Intereting Posts
Как мне настроить приложение Android с Python? Как установить собственный значок для маркеров в кластере в Google Maps Сохранять объекты в Android Android – открытие приложения электронной почты? Как передать параметр в код Java в конфигурации запуска / отладки из Android Studio Как остановить другие приложения, играющие музыку из моей текущей деятельности? Android PendingIntent перенесет вас в уже существующую деятельность? Android: загрузка / содержимое веб-страницы в центре Android – сохранить значение в LocalStorage до WebView.loadUrl () Интегрируя org.apache.poi и пакет javax.xml.stream. * (Stax-api) в android – как установить аргумент -core-library в Android Studio? Как вставить запись SQLite с установленным значением «сейчас» в приложении Android? Изображение появляется при наклоне 90 градусов при загрузке с сервера на Android? Использование библиотеки LGPL в приложении для платных Android Изображение Запрос пароля на Android

Что делает класс LayoutInflater? (В Android)

Я не могу понять использование LayoutInflater в Android.

Что такое роль LayoutInflater и как использовать его для простого приложения для Android?

Solutions Collecting From Web of "Что делает класс LayoutInflater? (В Android)"

Что такое Layoutinflater?

LayoutInflater – это класс (оболочка некоторой реализации или службы), вы можете получить один:

 LayoutInflater li = LayoutInflater.from(context); 

Как использовать Layoutinflater?

Вы загружаете файл XML-макета. Вам не нужно указывать полный адрес файла, просто его идентификатор ресурса, который автоматически генерируется в R классе. Например, файл макета, который выглядит так:

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

Сохранен как /res/layout/my_layout.xml .

Вы даете это LayoutInflater как:

  View v = li.inflate(R.layout.my_layout,null,false); 

Что сделал Layout Inflater?

Это v теперь объект LinearLayout ( LinearLayout extends View ) и содержит объект TextView , упорядоченный в точном порядке и со всеми установленными свойствами, как мы описали в XML выше.


TL; DR: LayoutInflater читает XML, в котором мы описываем, как мы хотим, чтобы макет пользовательского интерфейса был. Затем он создает реальные объекты View для пользовательского интерфейса из этого XML.

При запуске setContentView(layout file name) вы можете запустить findViewById(id of the widget) . Вам не нужно делать что-то вроде xyz.findViewById . Контекст вашего приложения установлен в этот файл макета, и все findBiewById будут ссылаться на этот файл макета.

Бывают случаи, когда вам нужно подобрать еще один файл макета, например CustomDialog, ListElement или Custom Toast. В это время вы не захотите создать Activity только для этих небольших компонентов пользовательского интерфейса, что в то время вам программно нужно получить программную ссылку на ваш файл макета, чтобы вы могли запускать findViewById.

Надуйте, удалите макет, как воздушный шар, и дайте вам воздушный шар, чтобы вы могли обойти вокруг него все цвета и предметы, нарисованные на нем :). Inflate дает ссылку на объект для этого макета для вызова findViewById.

Надеюсь, это очистит.

Некоторые основы LayoutInflater-

  • LayoutInflater используется для управления экраном Android с использованием предопределенных XML-макетов.
  • Этот класс используется для создания экземпляра XML-файла макета в соответствующие объекты View.

  • Он никогда не используется напрямую. Вместо,

  • Используйте getLayoutInflater() или getSystemService(String) для извлечения стандартного экземпляра LayoutInflater, который уже подключен к текущему контексту.

Из документов Android:

Создает XML-файл макета в соответствующие объекты View. Он никогда не используется напрямую. Вместо этого используйте getLayoutInflater () или getSystemService (String) для получения стандартного экземпляра LayoutInflater, который уже подключен к текущему контексту и правильно настроен для устройства, на котором вы работаете. Например:

 LayoutInflater inflater = (LayoutInflater)context.getSystemService (Context.LAYOUT_INFLATER_SERVICE); 

Полезно при создании пользовательских представлений

Видеть

Скорее всего, он будет закрыт, но роль маятника-надувателя состоит в том, чтобы создать view из предоставленного файла макета

 View row=getLayoutInflater.inflate(R.layout.list_item,parent,false); 

Он создает представление из файла R.layout.list_item и доказывает это view .