Макет кнопки Android с большим размером текста

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

xml макет:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent">

        <Button

            android:text="test"
            android:layout_height="100dp"
            android:layout_width="0dp"
            android:layout_weight="1"/>

        <Button
            android:padding="0dp"
            android:text="Arterial tension disturbance"
            android:layout_height="100dp"
            android:layout_width="0dp"
            android:layout_weight="1"/>

        </LinearLayout>

</LinearLayout>

person lazexe    schedule 26.12.2013    source источник
comment
Кнопки выровнены по вертикали или по горизонтали?   -  person Phantômaxx    schedule 26.12.2013
comment
что именно вы подразумеваете под разрывами разметки?   -  person Pablo_Cassinerio    schedule 26.12.2013
comment
Высота кнопок разная   -  person lazexe    schedule 26.12.2013


Ответы (3)


Добавить android:singleLine="true"

<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent">

    <Button
        android:singleLine="true"

        android:text="test"
        android:layout_height="100dp"
        android:layout_width="0dp"
        android:layout_weight="1"/>

    <Button
        android:singleLine="true"
        android:padding="0dp"
        android:text="Arterial tension disturbance"
        android:layout_height="100dp"
        android:layout_width="0dp"
        android:layout_weight="1"/>

    </LinearLayout>

person Alexander.Shtanko    schedule 26.12.2013

используйте wrap_content вместо 0dp

    <Button
        android:padding="0dp"
        android:text="Arterial tension disturbance"
        android:layout_height="100dp"
        android:layout_width="wrap_content"
        android:layout_weight="1"/>
person henry4343    schedule 26.12.2013
comment
тогда вы нарушите правило веса... и кнопки больше не будут иметь одинаковую ширину - person Phantômaxx; 26.12.2013
comment
это неправильно, потому что, если я возьму wrap_content, он сделает мою кнопку больше, чем первая, и они не будут одинаковыми - person lazexe; 26.12.2013
comment
или вы можете использовать fill_parent, чтобы кнопки заполняли ширину вашего макета - person henry4343; 26.12.2013

Вы можете попробовать это: (отредактировано)

<LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:orientation="vertical"
       android:weightSum="100" >


       <Button
          android:layout_width="fill_parent"
          android:text="yourText"
          android:layout_height="wrap_content"
          android:layout_weight="50" />

      <Button
          android:layout_width="fill_parent"
          android:text="yourText"
          android:layout_height="wrap_content"
          android:layout_weight="50" />

person androCoder-BD    schedule 26.12.2013
comment
Это совершенно неправильно!! В кнопках у вас должен быть layout_weight=50, а не weightSum. И вы можете использовать более низкие значения. И вы должны установить ширину кнопок на 0dp. - person Phantômaxx; 26.12.2013
comment
WeightSum не помог! - person lazexe; 26.12.2013
comment
очень жаль. Моя вина! это должно быть layout_weight=50 в теге ‹Button › - person androCoder-BD; 26.12.2013
comment
Что ж! вы должны установить ширину представления для заполнения родителя, если вы используете WeightSum. Потому что для него останется только половина места. Итак, когда вы используете его, заполните родителя, он займет только эту половину. Просто попробуйте. Это обязательно сработает (иншаАллах). :) - person androCoder-BD; 26.12.2013