我在Android上遇到了LinearLayout的问题。我有四个按钮。每个按钮都有固定的大小,但文本的长度可能不同。
我的问题是他们没有与每个人的顶部对齐。它们看起来与每个按钮内部文本的顶部对齐,这取决于按钮内部的行数(参见图片)。
另外,我想继续使用LinearLayout,因为我最终将使用代码将根据数据库中的数据添加按钮。
<?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_width="match_parent" android:layout_height="match_parent">
<Button android:text="Line1 Line2" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button>
<Button android:text="Line1 Line2 Line3" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button>
<Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button>
<Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button>
</LinearLayout>
</LinearLayout>
好的,我自己就找到了答案。 您必须将android:baselineAligned =“false”添加到LinearLayout或任何其他可能显示相同行为的类似控件。
您也可以使用名为“Toggle Baseline Alignment”的按钮在UI设计器中修复此问题。
结果代码是:
<?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:baselineAligned="false" android:layout_width="match_parent" android:layout_height="match_parent">
<Button android:text="Line1 Line2" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button>
<Button android:text="Line1 Line2 Line3" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button>
<Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button>
<Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:1)
最好使用RelativeLayout进行这种类型的对齐,因为RelativeLayout的概念说它是“引用”控件
答案 1 :(得分:0)
你的第二个线性布局是什么造成了我猜你的麻烦,只需删除那个
答案 2 :(得分:0)
您可以使用TableLayout而不是您的第二个LinearLayout.And在TableLayout中添加TableRow并在行中添加四个按钮