Принудительно установить относительный размер кнопки? - PullRequest
0 голосов
/ 03 июля 2011

У меня две кнопки в относительной раскладке, у обеих есть android: layout_weight = "50". Так что, пока текст ни одной кнопки не превышает половину веса экрана, обе кнопки имеют одинаковый размер. Но когда текст одной кнопки становится слишком длинным, кнопки больше не будут иметь одинаковый размер (сравните со скриншотом ниже). Как я могу сделать две кнопки одинакового размера, поэтому каждая из них должна иметь ширину, равную половине размера экрана, давая им только относительную ширину, как у android: layout_weight = "50", чтобы обе кнопки имели одинаковый размер независимо от их размера длина текста? Было бы хорошо, если бы текст был обрезан или что-то в этом роде. Спасибо за любую подсказку!

Мой текущий XML-код выглядит так:

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_weight="50"
        android:text="left button left button left button left button"/>

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_weight="50"
        android:text="right button"/>

</LinearLayout>

enter image description here

Ответы [ 2 ]

4 голосов
/ 04 июля 2011

Установите android:layout_width="0dp" на обе кнопки.

Вес макета применяется только после ширина кнопки была рассчитана. Когда вы указываете android:layout_width="wrap_content" ширину текста, вычисляемую за до , вычисляются веса, и элементы управления будут иметь размер, содержащий текст, потому что вы сообщаете диспетчеру компоновки, что содержимое каждой кнопки должно переноситься. вокруг его текста. Если вы установите эти значения ширины 0dp, то веса макета будут сделаны равными независимо от размера текста в этих кнопках, и только веса будут учтены, когда размеры и позиции макета вычисляются менеджером макета. .

0 голосов
/ 20 июля 2011

Вам просто нужно установить свойство android: layout_weight = "1" в обеих кнопках, и вы получите его работающим так, как вы хотите.

...