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


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

5 249

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-документа макета и его анализ для создания объектов представления и группы представлений из элементов и их атрибутов, указанных внутри, а затем добавление иерархии этих представлений и групп представлений в родительскую группу представлений. Когда вы вызываете setContentView (), он присоединяет представления, которые он создает из чтения XML к действию. Вы также можете использовать LayoutInflater для добавления мнения другой ViewGroup, который может быть полезным инструментом во многих случаях.

накачивания процесс добавления тем(.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);

а теперь, если мы хотим добавить кнопку в правом углу и 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 и он будет конвертировать для вас.