为什么按钮在LinearLayout中没有相同的基线

时间:2018-08-06 08:19:35

标签: android android-linearlayout

这是我的XML文件

<LinearLayout
    android:weightSum="3"
    android:layout_width="match_parent"
    android:layout_height="128dp"
    android:orientation="horizontal">

    <Button
        android:id="@+id/button3"
        style="@style/Base.Widget.AppCompat.Button.SoundboardUnlockedButton"
        android:layout_weight="1"
        android:text="Butto1111111111111111111n" />

    <Button
        style="@style/Base.Widget.AppCompat.Button.SoundboardUnlockedButton"
        android:id="@+id/button2"
        android:layout_weight="1"
        android:text="Butt1111111111111111on" />

    <Button
        android:id="@+id/button"
        style="@style/Base.Widget.AppCompat.Button.SoundboardUnlockedButton"
        android:layout_weight="1"
        android:text="Bu111111111111111111tton" />
</LinearLayout>

样式Base.Widget.AppCompat.Button.SoundboardUnlockedButton

<style name="Base.Widget.AppCompat.Button.SoundboardUnlockedButton">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">128dp</item>
</style>

在这里您可以看到Button的基线不同,该如何解决? enter image description here

3 个答案:

答案 0 :(得分:1)

将其放入您的LinearLayout中:

android:gravity="center_vertical"

对齐按钮

答案 1 :(得分:0)

尝试此操作以调整布局:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="128dp"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:weightSum="3">

    <Button
        android:id="@+id/button3"
        style="@style/Base.Widget.AppCompat.Button.SoundboardUnlockedButton"
        android:layout_weight="1"
        android:text="Butto1111111111111111111n" />

    <Button
        android:id="@+id/button2"
        style="@style/Base.Widget.AppCompat.Button.SoundboardUnlockedButton"
        android:layout_weight="1"
        android:text="Butt1111111111111111on" />

    <Button
        android:id="@+id/button"
        style="@style/Base.Widget.AppCompat.Button.SoundboardUnlockedButton"
        android:layout_weight="1"
        android:text="Bu111111111111111111tton" />
</LinearLayout>

答案 2 :(得分:0)

使用约束布局将帮助您解决问题,此外,还将帮助您展平布局层次结构。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button3"
        style="@style/Base.Widget.AppCompat.Button.SoundboardUnlockedButton"
        android:text="Butto1111111111111111111n"
        app:layout_constraintEnd_toStartOf="@id/button2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button2"
        style="@style/Base.Widget.AppCompat.Button.SoundboardUnlockedButton"
        android:text="Butto1111111111111111111n"
        app:layout_constraintEnd_toStartOf="@id/button"
        app:layout_constraintStart_toEndOf="@id/button3"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        style="@style/Base.Widget.AppCompat.Button.SoundboardUnlockedButton"
        android:text="Butto1111111111111111111n"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@id/button2"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>