Что значит раздувать представление из 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
. В этом случае вы должны:
- получить экземпляр
LayoutInflater
- укажите XML для надуть
- использовать возвращенный
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 и он будет конвертировать для вас.