У меня проблема с 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 или любой другой аналогичный элемент управления, который может показать то же поведение.
Это также можно исправить в конструкторе пользовательского интерфейса, используя кнопку «Переключить выравнивание базовой линии».
Итак, полученный код:
<?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>