Я ищу способ определить пользовательские атрибуты для представлений, которые используются их дочерними элементами. Например, layout_centerInParent
для детей RelativeLayouts
или layout_span
для детей TableLayouts
.
Определите пользовательские атрибуты ViewGroup для дочерних элементов
comment
как вы думаете, почему они используются детьми, а не там, где они определены?
- person pskink   schedule 15.03.2015
comment
Я почти уверен, что было время, когда использование атрибутов, объявленных в родительском элементе, приводило к ошибке lint. Я только что попробовал еще раз без проблем.
- person Kuno   schedule 15.03.2015
Ответы (1)
На всякий случай, если кто-то еще придет сюда, надеясь на направление, как я:
Параметры макета, определенные в дочерних элементах, используются в родительских. Например, layout_centerInParent
используется родителем RelativeLayout
для позиционирования дочернего элемента в соответствии со значением этого атрибута.
В пользовательской ViewGroup вы можете создать внутренний класс, который расширяет ViewGroup.LayoutParams
. Затем вы можете использовать XML-атрибуты в дочерних элементах и извлекать их в пользовательском макете с помощью View#getLayoutParams()
.
Вы можете посмотреть на этот вопрос и его ответ.
person
et_l
schedule
13.12.2016