Как логически структурировать представления Android в xml - PullRequest
0 голосов
/ 28 сентября 2018

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

Если я посмотрю на HTML, то вы можете использовать элемент div для структурирования элементов вместе.,При применении стиля или удалении этого элемента, это влияет и на его потомков.Я ищу что-то подобное в Android.

Android имеет абстрактную ViewGroup, но я не могу использовать это напрямую.Android Studio говорит мне: «Элемент ViewGroup здесь не разрешен».Я не хочу использовать LinearLayout, потому что я не хочу менять макет.Есть ли ViewGroup, которая ничего не делает, кроме добавления структуры в XML?

Альтернативная идея:

Может быть, я мог бы использовать для этого атрибут тега android :.Такой, что я создаю метод, чтобы «скрыть все элементы, которые содержат тег X».Или, в более общем смысле, «выполнить действие Y элементов с тегом X».При таком подходе я попытался бы эмулировать, что классы делают в CSS / HTML: давать атрибуты элементов, запрашивать элементы с использованием этих атрибутов, применять стили / действия к этим элементам.У кого-нибудь есть опыт использования такого подхода в Android?


Дополнительный вопрос: когда я смотрю на Android, у меня возникает ощущение, что очень гибкие и полезные концепции, которые являются зрелыми и хорошо известны в веб-разработке, былипотерял.Например, в Android XML вы можете установить один стиль для представления.Однако, используя HTML / CSS, вы обычно устанавливаете множество классов для элементов и можете создать стиль для каждого из них.Например, элементы с классом "Important" должны быть выделены жирным шрифтом, а класс "Титул" должен иметь больший шрифт, поэтому элемент с "важным_текстом" и "Титулом" будет выделен как жирным, так и большим.Как бы вы сделали это в Android?

1 Ответ

0 голосов
/ 28 сентября 2018

Посмотрите, как работают теги макетов <include> и <merge>.Возможно, это может быть близко к тому, что вы ищете.

...