Определите пользовательские атрибуты ViewGroup для дочерних элементов

Я ищу способ определить пользовательские атрибуты для представлений, которые используются их дочерними элементами. Например, layout_centerInParent для детей RelativeLayouts или layout_span для детей TableLayouts.


person Kuno    schedule 15.03.2015    source источник
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