Что такое LayoutInflater.inflate() в Android?

146
18 апреля 2019, 14:30

Смотрел туториал по разработке приложения на Андроид и в теме ArrayAdapter, ListView такой код

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // Check if an existing view is being reused, otherwise inflate the view
    View listItemView = convertView;
    if (listItemView == null) {
        listItemView = LayoutInflater.from(getContext()).inflate(
                R.layout.list_item, parent, false);
    }

Хотел узнать что делает этот код, что такое inflate? И что означют аргументы в методе getView() ?

Answer 1

инфлейт - создание полноценных java-объектов - виджетов экрана, с которыми можно работать из кода по их "описанию" в xml-разметке.

Дело в том, что xml-представление экрана всего лишь текст, с которым никаким образом нельзя взаимодействовать программно, инфлейт преобразует текст в код, по другому это парсинг документа о взаиморасположении виджетов на экране и их параметров в набор объектов.

Все аргументы метода getView() отлично описаны в документации, не ленитесь туда заглядывать

READ ALSO
Зачем нужен массив Class[]

Зачем нужен массив Class[]

К примеру я создал массив

150
Передача нужного URL на WebView

Передача нужного URL на WebView

У меня есть несколько кнопок находящихся на фрагменте и один WebView находящийся на активитиФункция этих кнопок в моём представлении в том чтобы...

183
Android Studio остановка приложения

Android Studio остановка приложения

Почему андроид студия останавливает приложение при нажатии кнопки create? В коде никаких ошибок не подсвечено и оно нормально компилируется...

177