带有多线文字的按钮在对齐线下沉,如何解决?

时间:2012-02-03 13:17:48

标签: android layout button alignment multiline

当他们的文字分成几行时,我看到简单按钮的奇怪行为。我有它在更复杂的情况下,但即使在最简单的情况下它发生。有了这个布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">

<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111" />
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111 222 333" />
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111 222 333 444 555 666" />
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111" />
</LinearLayout>

结果是:buttons not in a row

按钮随着下一行文字向下和向下移动。我希望他们排成一列。这是一个Android bug以及如何修复它?

5 个答案:

答案 0 :(得分:9)

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

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

        <Button
            android:layout_width="100dip"
            android:layout_height="70dip"
            android:layout_gravity="center"
            android:text="111" />

        <Button
            android:layout_width="100dip"
            android:layout_height="70dip"
            android:layout_gravity="center"
            android:text="111 222 333" />

        <Button
            android:layout_width="100dip"
            android:layout_height="70dip"
            android:layout_gravity="center"
            android:text="111 222 333 444 555 666" />

        <Button
            android:layout_width="100dip"
            android:layout_height="70dip"
            android:layout_gravity="center"
            android:text="111" />
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:2)

将LinearLayout的android:baselineAligned设置为false

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:baselineAligned="false">

答案 2 :(得分:1)

做这样的事情

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<Button
    android:id="@+id/btn1"
    android:layout_width="100dip"
    android:layout_height="70dip"
    android:text="111" />

<Button
    android:layout_toRightOf="@+id/btn1"
    android:id="@+id/btn2"
    android:layout_width="100dip"
    android:layout_height="70dip"
    android:text="111 222 333" />

<Button
    android:layout_toRightOf="@+id/btn2"
    android:id="@+id/btn3"
    android:layout_width="100dip"
    android:layout_height="70dip"
    android:text="111 222 333 444 555 666" />

<Button
           android:layout_toRightOf="@+id/btn3"
    android:id="@+id/btn4"
    android:layout_width="100dip"
    android:layout_height="70dip"
    android:text="111" />

</RelativeLayout>

答案 3 :(得分:0)

代替按钮使用像这样

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:text="111" />

答案 4 :(得分:0)

在每个按钮中使用以下2行,然后所有按钮将以单行显示。

    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

如果您希望这些按钮必须拉伸整个宽度,请在每个按钮下方添加以下行

    android:layout_weight="1"