У меня возникла проблема с LinearLayout на Android. У меня четыре кнопки. Каждая кнопка имеет фиксированный размер, но текст может меняться по длине.
Моя проблема в том, что они не совпадают с вершиной каждого. Они видели, что они совпадают с верхней частью текста внутри каждого бэттона, который изменяется в зависимости от количества строк внутри кнопки (см. Рисунок).
Кроме того, я хочу продолжать использовать 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".
Таким образом, полученный код:
<?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>