Что значит раздуть представление из XML файла?

Я новичок в разработке Android и продолжаю ссылаться на ссылки на Inflating views из XML файла макета. Я искал Google и искал руководство по разработке, но все еще не мог понять, что это значит. Если бы кто-то мог представить очень простой пример, это было бы очень признательно.

Ответ 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 и он будет конвертировать для вас.