объединение wrap_content для родителя и fill_parent для дочернего - PullRequest
41 голосов
/ 05 января 2011

Установка двух или более элементов линейного макета одинаковой высоты кажется большой проблемой.

Я хочу установить четыре кнопки в ряд на одинаковую высоту.

android:layout_height = "wrap_content" делает это на данный момент, но когда текст на одной из кнопок длиннее одной строки, эта кнопка увеличивается и, следовательно, больше других.Из-за разных локализаций я не знаю, когда и какая кнопка может иметь вторую строку.

Так что моя идея состоит в том, чтобы установить родительский linearlayout в android: layout_height = "wrap_content" и все (!) дочерних высот для Android: layout_height = "fill_parent" .

Это работает (все кнопки имеют одинаковый размер), но я не уверен, вызывает ли это какие-либо другие проблемы?Потому что это родитель получает свой рост от детей и наоборот.

Ответы [ 2 ]

56 голосов
/ 05 января 2011

Теоретически то, что вы описываете, не должно работать («потому что родитель получает свой рост от дочерних элементов и наоборот».) Однако мы заставили его работать в LinearLayout, потому что это был очень распространенный вариант использования.Недавно я добавил аналогичную поддержку FrameLayout (эта функция должна быть частью Honeycomb.) То, что вы делаете, поэтому совершенно правильно и будет работать просто отлично.

0 голосов
/ 05 января 2011

Это не имеет смысла: (

Почему бы вам не использовать android:singleLine="true" и какой-нибудь эллипсод?

...