Android 对齐线下带多行文字接收器的按钮,如何修复?

Android 对齐线下带多行文字接收器的按钮,如何修复?,android,layout,button,alignment,multiline,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_pare

我看到简单按钮的奇怪行为,当它们的文本在几行上分开时。我有它在更复杂的情况下,但即使在最简单的一个它发生。使用此布局:

<?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>

结果是:


按钮随着下一行文本不断向下移动。我要他们排成一行。这是安卓系统的错误吗?如何修复它?

代替按钮使用类似的方法

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

试试这个:

<?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>

在每个按钮中使用下面两行,然后所有按钮将以单行形式出现

    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
如果您想让这些按钮延伸整个宽度,请在下面的行中添加每个按钮

    android:layout_weight="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>

将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">


我希望这些按钮大小相同。实际上,我在我的真实程序中使用了android:layout\u weight=“1”和android:layout\u width=“0dip”,但这并没有帮助。我知道“包装内容”的作用,但我想要大小相同的按钮。+1。谢谢实际上,android:layout_gravity=“center”按钮似乎不够,不需要嵌套活动。我将再等几个小时,等待其他意见,但您的答案可能会得到分数。android:gravity=“center”作为布局属性也起作用,还有一些其他条件,如:+1。这是可行的,但是来自dmytrodanylyk解决方案的android:layout\u gravity=“center”更简单。这不是一个bug,按钮的文本基线与其他按钮对齐。将
LinearLayout
baselineAligned
设置为
false
,将解决此问题。