Я новичок в разработке Android и продолжаю ссылаться на ссылки на Inflating views из XML файла макета. Я искал Google и искал руководство по разработке, но все еще не мог понять, что это значит. Если бы кто-то мог представить очень простой пример, это было бы очень признательно.
Что значит раздуть представление из XML файла?
Ответ 1
Когда вы пишете XML-макет, он будет завышен ОС Android, что в основном означает, что он будет отображаться путем создания объекта представления в памяти. Позвольте назвать эту неявную инфляцию (ОС раздует представление для вас). Например:
class Name extends Activity{
public void onCreate(){
// the OS will inflate the your_layout.xml
// file and use it for this activity
setContentView(R.layout.your_layout);
}
}
Вы также можете явно раздувать представления, используя LayoutInflater
. В этом случае вы должны:
- Получить экземпляр
LayoutInflater
- Укажите XML для раздувания
- Используйте возвращенный
View
Например:
LayoutInflater inflater = LayoutInflater.from(YourActivity.this); // 1
View theInflatedView = inflater.inflate(R.layout.your_layout, null); // 2 and 3
Ответ 2
"Раздувание" представления означает использование XML-макета и его синтаксический анализ для создания объектов view и viewgroup из элементов и их атрибутов, указанных внутри, а затем добавления иерархии этих представлений и групп представлений в родительскую ViewGroup. Когда вы вызываете setContentView(), он присоединяет созданные им представления от чтения XML к активности. Вы также можете использовать LayoutInflater для добавления представлений в другую ViewGroup, которая может быть полезным инструментом во многих обстоятельствах.
Ответ 3
Раздувание - это процесс добавления представления (.xml) к активности во время выполнения. Когда мы создаем listView, мы раздуваем его каждый элемент динамически. Если мы хотим создать ViewGroup с несколькими представлениями, такими как кнопки и textview. Мы можем создать его как
Button but = new Button();
but.setText ="button text";
but.background ...
but.leftDrawable.. and so on...
TextView txt = new TextView();
txt.setText ="button text";
txt.background ... and so on...
Затем мы должны создать макет, где мы можем добавить выше представления
RelativeLayout rel = new RelativeLayout();
rel.addView(but);
И теперь, если мы хотим добавить кнопку в правом углу и текстовое изображение внизу. Мы должны много работать. Сначала с свойствами представления, а во-вторых, мы должны применить несколько ограничений. Это трудная и трудоемкая работа.
Android упростит нам создание простого XML файла и его стиль и атрибуты в xml и просто просто раздуйте его там, где он нам нужен, без путаницы ограничений установки и его программного программирования.
LayoutInflater inflater =
(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View menuLayout = inflater.inflate(R.layout.your_menu_layout, mainLayout, true);
//now add menuLayout to wherever you want to add like
(RelativeLayout)findViewById(R.id.relative).addView(menuLayout);
Ответ 4
Я думаю, что здесь "раздувание представления" означает получение файла layout.xml, создающего представление, указанное в этом XML файле, и POPULATING (= раздувание) родительской группы представлений с созданным представлением.
Ответ 5
Поскольку мы создаем UI в XML, но просмотр объектов - это то, что мы показываем, поэтому нам нужно как-то конвертировать xml в объекты просмотра, так что раздувание означает, что мы конвертируем xml в объекты вида, чтобы он мог отображаться, для этого нам нужна услуга, называемая макет инфлятора сервис и дать ему xml и он будет конвертировать для вас.