Разница между <include> и <ViewStub> в Android

В чем различия между тегом <\ include> и тегом <\ ViewStub> и какой из них предпочтительнее при разработке макета.

Спасибо,
Venu

4 ответа

Решение

будет просто включать содержимое xml в ваш базовый xml-файл, как если бы все это было просто одним большим файлом. Это хороший способ разделить части макета между различными макетами.

немного отличается, потому что он не включен напрямую и будет загружен только тогда, когда вы действительно используете его / нуждаетесь в нем, т.е. когда вы устанавливаете его видимость на VISIBLE (на самом деле видимый) или INVISIBLE (все еще не видно, но его размер больше не равен 0). Это хорошая оптимизация, потому что у вас может быть сложный макет с множеством маленьких представлений или заголовков в любом месте, и при этом ваша активность будет загружаться очень быстро. Как только вы используете один из этих видов, он будет загружен.

Совместное использование и повторное использование макетов в Android очень просто благодаря тегу, иногда даже слишком простому, и вы можете получить пользовательские интерфейсы с большим количеством представлений, некоторые из которых используются редко. К счастью, Android предлагает особый виджет под названием ViewStub, который дает вам все преимущества, не загрязняя ваш пользовательский интерфейс редко используемыми представлениями.

ViewStub - тупой и легкий вид. У него нет измерения, он ничего не рисует и никак не участвует в макете. Это означает, что ViewStub очень дешев, чтобы его раздувать, и очень дешево хранить в иерархии представлений. ViewStub лучше всего описать как ленивое включение. Макет, на который ссылается ViewStub, раздувается и добавляется в пользовательский интерфейс только тогда, когда вы решите.

Еще одно важное отличие связано с раздувкой макета. При этом невозможно изменить макет, уже статически накачанный в XML, необходимо заменить представление и программно установить все параметры макета. С его помощью можно определить (например, высоту, ширину и т. Д.) И накачать другой макет во время выполнения

Другие вопросы по тегам