Всем привет. Сегодня поговорим об инфляции. Но не о той, что мы все привыкли слышать.
В данном случае "инфляция" означает преобразование XML-спецификации макета в реальное дерево объектов View, которое представляет XML. Это, несомненно, утомительная часть кода: взять элемент, создать экземпляр указанного класса View, пройтись по атрибутам, преобразовать их в вызовы установщиков свойств, перебрать все дочерние элементы, промыть, прополоскать, повторить.
Хорошая новость заключается в том, что прекрасные люди из команды Android обернули все это в класс под названием LayoutInflater, который мы можем использовать самостоятельно. Например, когда речь идет о причудливых списках, мы захотим раздуть представления для каждой строки, отображаемой в списке, чтобы использовать удобное сокращение XML-макета для описания того, как должны выглядеть строки.
В предыдущем примере мы раздуваем макет R.layout.row, который мы создали в предыдущем разделе. Это дает нам объект View, который в действительности является нашим LinearLayout с ImageView и TextView, как и указано в R.layout.row. Однако вместо того, чтобы самим создавать все эти объекты и соединять их вместе, XML и LayoutInflater выполняют эту "тяжелую работу" за нас.