Android ConstraintLayout 中心与多个按钮水平对齐
Android ConstraintLayout Center Aligning Horizontally With Multiple Buttons
我最近开始在 android studio 中使用 ConstraintLayout(稍后可能会在我的应用程序中使用它),我想创建一个布局,其中一行有 5 个按钮,并且有 10 行,每行 5 个按钮。我做对了,除了我希望所有按钮都调整到相同的宽度,同时填充整行(按钮之间没有间隙)。
A example of the problem:
我现在的 xml:
<?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="lotterynumbergenerator.johnferrazlopez.com.southafricanlotteryguide.other.SaveNumbers">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="01"
android:textStyle="bold"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/button2"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="02"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/button"
app:layout_constraintRight_toLeftOf="@+id/button3"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="03"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/button2"
app:layout_constraintRight_toLeftOf="@+id/button4"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="04"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/button3"
app:layout_constraintRight_toLeftOf="@+id/button5"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="05"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/button4"
app:layout_constraintRight_toRightOf="parent"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="06"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toLeftOf="@+id/button7"
app:layout_constraintLeft_toLeftOf="parent" />
<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="07"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toLeftOf="@+id/button8"
app:layout_constraintLeft_toRightOf="@+id/button6" />
<Button
android:id="@+id/button8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="08"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toLeftOf="@+id/button9"
app:layout_constraintLeft_toRightOf="@+id/button7" />
<Button
android:id="@+id/button9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="09"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toLeftOf="@+id/button10"
app:layout_constraintLeft_toRightOf="@+id/button8" />
<Button
android:id="@+id/button10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toRightOf="@+id/button9" />
</android.support.constraint.ConstraintLayout>
我在 xml 中看到的另一件事是标签中的这条消息是 "This view is not constrained vertically: at runtime it will jump to the left unless you add a vertical constraint"
提前致谢。
编辑:
这是您使用 10dp
作为页边距查找的示例。我只创建了一行,但其他行将遵循相同的模式。此模型使用水平链条,链条样式为 "spread"。 (app:layout_constraintHorizontal_chainStyle="spread"
) 按钮的宽度设置为“0dp”("match constraints")。开始和结束边距负责确保间距正确。该布局适用于纵向和横向以及不同的屏幕尺寸。
添加将每个按钮绑定到父顶部的约束会处理 "not vertically constrained" 错误消息。视图必须在水平和垂直方向上受到约束。
纵向
横向
和 XML:
<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:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="25dp">
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="8dp"
android:text="01"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button2"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginTop="8dp"
android:text="02"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button3"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginTop="8dp"
android:text="03"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button2"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginTop="8dp"
android:text="04"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button3"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginTop="8dp"
android:text="05"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button4"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
如果您 link 将每行的所有第一个按钮放入垂直链中,您将摆脱错误消息,并且行的高度也会自动调整大小。尝试 0dp
或 40dp
或 @dimen/buttonHeight
等固定值来优化按钮的高度。
基于您的代码和 Cheticamp 的代码,您可以执行以下操作:
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="10dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="5dp"
android:text="01"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button2"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintVertical_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/button6"
/>
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="02"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button"
app:layout_constraintEnd_toStartOf="@+id/button3"
app:layout_constraintTop_toTopOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@+id/button"
/>
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="03"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button2"
app:layout_constraintEnd_toStartOf="@+id/button4"
app:layout_constraintTop_toTopOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@+id/button"
/>
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="04"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button3"
app:layout_constraintEnd_toStartOf="@+id/button5"
app:layout_constraintTop_toTopOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@+id/button"
/>
<Button
android:id="@+id/button5"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="5dp"
android:text="05"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@+id/button"
/>
<Button
android:id="@+id/button6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="06"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button7"
app:layout_constraintTop_toBottomOf="@+id/button"
app:layout_constraintBottom_toTopOf="@+id/button11"
/>
<Button
android:id="@+id/button7"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="07"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button6"
app:layout_constraintEnd_toStartOf="@+id/button8"
app:layout_constraintTop_toTopOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="@+id/button6"
/>
<Button
android:id="@+id/button8"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="08"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button7"
app:layout_constraintEnd_toStartOf="@+id/button9"
app:layout_constraintTop_toTopOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="@+id/button6"
/>
<Button
android:id="@+id/button9"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="09"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button8"
app:layout_constraintEnd_toStartOf="@+id/button10"
app:layout_constraintTop_toTopOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="@+id/button6"
/>
<Button
android:id="@+id/button10"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="5dp"
android:text="10"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button9"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="@+id/button6"
/>
<Button
android:id="@+id/button11"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="8dp"
android:text="11"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button7"
app:layout_constraintTop_toBottomOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="parent"
/>
<Button
android:id="@+id/button12"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="12"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button11"
app:layout_constraintEnd_toStartOf="@+id/button13"
app:layout_constraintTop_toTopOf="@+id/button11"
app:layout_constraintBottom_toBottomOf="@+id/button11"
/>
<Button
android:id="@+id/button13"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="13"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button12"
app:layout_constraintEnd_toStartOf="@+id/button14"
app:layout_constraintTop_toTopOf="@+id/button11"
app:layout_constraintBottom_toBottomOf="@+id/button11"
/>
<Button
android:id="@+id/button14"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="14"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button13"
app:layout_constraintEnd_toStartOf="@+id/button14"
app:layout_constraintTop_toTopOf="@+id/button11"
app:layout_constraintBottom_toBottomOf="@+id/button11"
/>
<Button
android:id="@+id/button15"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="5dp"
android:text="15"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/button11"
app:layout_constraintBottom_toBottomOf="@+id/button11"
/>
应用程序:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
我最近开始在 android studio 中使用 ConstraintLayout(稍后可能会在我的应用程序中使用它),我想创建一个布局,其中一行有 5 个按钮,并且有 10 行,每行 5 个按钮。我做对了,除了我希望所有按钮都调整到相同的宽度,同时填充整行(按钮之间没有间隙)。
A example of the problem:
我现在的 xml:
<?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="lotterynumbergenerator.johnferrazlopez.com.southafricanlotteryguide.other.SaveNumbers">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="01"
android:textStyle="bold"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/button2"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="02"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/button"
app:layout_constraintRight_toLeftOf="@+id/button3"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="03"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/button2"
app:layout_constraintRight_toLeftOf="@+id/button4"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="04"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/button3"
app:layout_constraintRight_toLeftOf="@+id/button5"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="05"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/button4"
app:layout_constraintRight_toRightOf="parent"
tools:layout_editor_absoluteY="16dp" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="06"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toLeftOf="@+id/button7"
app:layout_constraintLeft_toLeftOf="parent" />
<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="07"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toLeftOf="@+id/button8"
app:layout_constraintLeft_toRightOf="@+id/button6" />
<Button
android:id="@+id/button8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="08"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toLeftOf="@+id/button9"
app:layout_constraintLeft_toRightOf="@+id/button7" />
<Button
android:id="@+id/button9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="09"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toLeftOf="@+id/button10"
app:layout_constraintLeft_toRightOf="@+id/button8" />
<Button
android:id="@+id/button10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10"
tools:layout_editor_absoluteY="64dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toRightOf="@+id/button9" />
</android.support.constraint.ConstraintLayout>
我在 xml 中看到的另一件事是标签中的这条消息是 "This view is not constrained vertically: at runtime it will jump to the left unless you add a vertical constraint"
提前致谢。
编辑:
这是您使用 10dp
作为页边距查找的示例。我只创建了一行,但其他行将遵循相同的模式。此模型使用水平链条,链条样式为 "spread"。 (app:layout_constraintHorizontal_chainStyle="spread"
) 按钮的宽度设置为“0dp”("match constraints")。开始和结束边距负责确保间距正确。该布局适用于纵向和横向以及不同的屏幕尺寸。
添加将每个按钮绑定到父顶部的约束会处理 "not vertically constrained" 错误消息。视图必须在水平和垂直方向上受到约束。
纵向
横向
和 XML:
<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:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="25dp">
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="8dp"
android:text="01"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button2"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginTop="8dp"
android:text="02"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button3"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginTop="8dp"
android:text="03"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button2"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginTop="8dp"
android:text="04"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button3"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginTop="8dp"
android:text="05"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button4"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
如果您 link 将每行的所有第一个按钮放入垂直链中,您将摆脱错误消息,并且行的高度也会自动调整大小。尝试 0dp
或 40dp
或 @dimen/buttonHeight
等固定值来优化按钮的高度。
基于您的代码和 Cheticamp 的代码,您可以执行以下操作:
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="10dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="5dp"
android:text="01"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/button2"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintVertical_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/button6"
/>
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="02"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button"
app:layout_constraintEnd_toStartOf="@+id/button3"
app:layout_constraintTop_toTopOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@+id/button"
/>
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="03"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button2"
app:layout_constraintEnd_toStartOf="@+id/button4"
app:layout_constraintTop_toTopOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@+id/button"
/>
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="04"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button3"
app:layout_constraintEnd_toStartOf="@+id/button5"
app:layout_constraintTop_toTopOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@+id/button"
/>
<Button
android:id="@+id/button5"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="5dp"
android:text="05"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@+id/button"
/>
<Button
android:id="@+id/button6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="06"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button7"
app:layout_constraintTop_toBottomOf="@+id/button"
app:layout_constraintBottom_toTopOf="@+id/button11"
/>
<Button
android:id="@+id/button7"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="07"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button6"
app:layout_constraintEnd_toStartOf="@+id/button8"
app:layout_constraintTop_toTopOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="@+id/button6"
/>
<Button
android:id="@+id/button8"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="08"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button7"
app:layout_constraintEnd_toStartOf="@+id/button9"
app:layout_constraintTop_toTopOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="@+id/button6"
/>
<Button
android:id="@+id/button9"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="09"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button8"
app:layout_constraintEnd_toStartOf="@+id/button10"
app:layout_constraintTop_toTopOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="@+id/button6"
/>
<Button
android:id="@+id/button10"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="5dp"
android:text="10"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button9"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="@+id/button6"
/>
<Button
android:id="@+id/button11"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="8dp"
android:text="11"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button7"
app:layout_constraintTop_toBottomOf="@+id/button6"
app:layout_constraintBottom_toBottomOf="parent"
/>
<Button
android:id="@+id/button12"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="12"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button11"
app:layout_constraintEnd_toStartOf="@+id/button13"
app:layout_constraintTop_toTopOf="@+id/button11"
app:layout_constraintBottom_toBottomOf="@+id/button11"
/>
<Button
android:id="@+id/button13"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="13"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button12"
app:layout_constraintEnd_toStartOf="@+id/button14"
app:layout_constraintTop_toTopOf="@+id/button11"
app:layout_constraintBottom_toBottomOf="@+id/button11"
/>
<Button
android:id="@+id/button14"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:text="14"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button13"
app:layout_constraintEnd_toStartOf="@+id/button14"
app:layout_constraintTop_toTopOf="@+id/button11"
app:layout_constraintBottom_toBottomOf="@+id/button11"
/>
<Button
android:id="@+id/button15"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="5dp"
android:text="15"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/button14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/button11"
app:layout_constraintBottom_toBottomOf="@+id/button11"
/>
应用程序:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"