У меня есть два вида в макете.
Я назову их View A
и View B
соответственно.
┌──────┐
│┌─┐┌─┐│
││A││B││
│└─┘└─┘│
└──────┘
Высота родительского макета (включая View A
и View B
) равна WRAP_CONTENT
.
Здесь высота View B
равна WRAP_CONTENT
. То есть его высота может быть изменена по отношению к ее содержимому.
Что я хочу сделать, это
- Установите высоту
View A
height доView B
height, если содержимоеView A
меньшеView B
. - Установите высоту
View A
в свою собственную высоту контента, если содержимоеView A
выше, чемView B
.
Итак,
① Если содержимое View B
выше, то высота View A
установлена на View B
height.
┌──────┐ ┌──────┐
│┌─┐┌─┐│ │┌─┐┌─┐│
││ ││ ││ ││A││ ││
I want ││A││B││, not │└─┘│B││.
││ ││ ││ │ │ ││
│└─┘└─┘│ │ └─┘│
└──────┘ └──────┘
② Если содержимое View B
короче, то View A
высота View A
имеет собственную высоту коннектора.
┌──────┐ ┌──────┐
│┌─┐┌─┐│ │┌─┐┌─┐│
││ ││B││ ││A││B││
I want ││A│└─┘│, not │└─┘└─┘│.
││ │ │ └──────┘
│└─┘ │
└──────┘
Если родительский элемент LinearLayout (Horizontal)
, установка View A
height на WRAP_CONTENT
нарушает регистр 1, а установка View A
height на MATCH_PARENT
нарушает регистр 2.
Если родительский элемент RelativeLayout
, установка View A
для выравнивания верхней и нижней части родителя нарушает условие RelativeLayout
:
Note that you cannot have a circular dependency between the size of the RelativeLayout and the position of its children. For example, you cannot have a RelativeLayout whose height is set to WRAP_CONTENT and a child set to ALIGN_PARENT_BOTTOM.
Как я могу решить эту проблему?