Каковы различия между тегом <\include > и тегом <\ViewStub > и который предпочтительнее при разработке макета.
Спасибо,
Venu
Каковы различия между тегом <\include > и тегом <\ViewStub > и который предпочтительнее при разработке макета.
Спасибо,
Venu
include/" > будет просто включать содержимое xml в ваш базовый xml файл, как будто все это всего лишь один большой файл. Это хороший способ совместного использования макетов между различными макетами.
ViewStub/" > немного отличается, потому что он не включен напрямую и будет загружен только тогда, когда вы действительно используете его/нуждаетесь в нем, т.е. Когда вы установите его видимость на VISIBLE
(фактически видимый) или INVISIBLE
(все еще не видимый, но его размер больше не равен 0). Это хорошая оптимизация, потому что у вас может быть сложная компоновка с множеством небольших представлений или заголовков в любом месте, и вы по-прежнему быстро загружаете свою активность. Как только вы используете одно из этих видов, оно будет загружено.
Совместное использование и повторное использование макетов очень просто благодаря Android благодаря тегу, иногда даже слишком легкому, и вы можете получить пользовательские интерфейсы, которые содержат большое количество просмотров, некоторые из которых редко используются. К счастью, Android предлагает очень специальный виджет под названием ViewStub, который приносит вам все преимущества без загрязнения вашего пользовательского интерфейса с редко используемыми видами.
ViewStub - это немой и легкий вид. Он не имеет никакого измерения, он ничего не рисует и никак не участвует в макете. Это означает, что ViewStub очень дешев для раздувания и очень дешево, чтобы поддерживать иерархию взглядов. ViewStub можно лучше всего описать как ленивый. Макет, на который ссылается ViewStub, накачивается и добавляется к пользовательскому интерфейсу только тогда, когда вы это решаете.
Другое важное различие связано с раздуванием макета. с невозможностью изменить макет, уже статический завышенный в XML, необходимо заменить представление и установить программно все параметры макета. С помощью можно определить (например, высоту, ширину и т.д.) И раздуть разный макет во время выполнения