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

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

5 ответов


когда вы пишете макет 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. В этом случае вы должны:

  1. получить экземпляр LayoutInflater
  2. укажите XML для надуть
  3. использовать возвращенный View

например:

LayoutInflater inflater = LayoutInflater.from(YourActivity.this); // 1
View theInflatedView = inflater.inflate(R.layout.your_layout, null); // 2 and 3

"раздувание" представления означает взятие XML макета и его синтаксический анализ для создания объектов представления и viewgroup из элементов и их атрибутов, указанных внутри, а затем добавление иерархии этих представлений и viewgroups в родительскую ViewGroup. При вызове setContentView () он присоединяет к действию представления, созданные при чтении XML. Вы также можете использовать LayoutInflater для добавления мнения другой ViewGroup, который может быть полезным инструментом во многих случаях.


накачивания процесс добавления тем(.xml) к действию во время выполнения. Когда мы создаем listView, мы раздуваем его каждый элемент динамически. Если мы хотим создать ViewGroup с несколькими представлениями, такими как buttons и 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);

и теперь, если мы хотим добавить кнопку в правом углу и textview внизу . Мы должны сделать много работы. Сначала свойства вид и во-вторых, мы должны применить несколько ограничений. Это трудная и трудоемкая работа.

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);

Я думаю, что здесь "раздувание вида" означает получение макета.xml-файл рисование представления, указанного в этом xml-файле, и заполнение ( = раздувание ) родительской группы представлений созданным представлением.


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