Метод inflate
Метод inflate
у
LayoutInflater
принимает id ресурса R.layout.*,
опционально родительский ViewGroup
и флаг attachToRoot.
Возвращает корневой View разметки.
Для экрана активности корень передают
в setContentView.
Синтаксис
val root = inflater.inflate(R.layout.activity_main, parent, false)
Параметры
| Параметр | Описание |
|---|---|
resource |
Id layout файла, например R.layout.activity_main.
|
root |
Родитель для параметров layout или null.
|
attachToRoot |
Если true, сразу добавляет View к root.
Для setContentView часто false с null root.
|
Пример
Давайте раздуем layout пункта списка:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="abcde" />
Файл item_line станет одним TextView после inflate в adapter.
Пример
Давайте inflate item_line для RecyclerView:
import android.view.LayoutInflater
import android.view.ViewGroup
fun createRow(parent: ViewGroup): android.view.View {
return LayoutInflater.from(parent.context)
.inflate(R.layout.item_line, parent, false)
}
Функция вернёт View строки, готовый для обёртки в ViewHolder.
Смотрите также
-
метод
from,
которым получают inflater перед inflate -
класс
LayoutInflater,
у которого вызывают inflate -
метод
onCreateViewHolder,
типичное место вызова inflate -
метод
findViewById,
которым ищут id после inflate