约束布局中的网格

grid in constraintlayout

我想在约束布局中使用带有方形按钮的 2 列网格这是我的 xml 但是当我添加 4 个按钮时它显示一个大按钮 :

screen

当我删除 2 个按钮时,一切都很好:

screen2

<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="wrap_content"
    tools:context="com.example.poory.myapplication.MainActivity">

    <Button
        android:id="@+id/button"
        app:layout_constraintTop_toBottomOf="@id/slider"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintDimensionRatio="H,1:1"
        android:text="Button"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/button2"
        android:layout_marginTop="0dp" />

    <Button
        android:id="@+id/button2"
        app:layout_constraintTop_toBottomOf="@id/slider"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="Button"
        app:layout_constraintDimensionRatio="H,1:1"
        tools:layout_editor_absoluteY="232dp"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/button" />

    <Button
        android:id="@+id/button3"
        app:layout_constraintTop_toBottomOf="@id/button"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="Button"
        app:layout_constraintDimensionRatio="H,1:1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/button2" />

    <Button
        android:id="@+id/button4"
        app:layout_constraintTop_toBottomOf="@id/button2"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="Button"
        app:layout_constraintDimensionRatio="H,1:1"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/button" />

</android.support.constraint.ConstraintLayout>

这个网格应该在 scrollview 中,所以我不能使用父级的底部。

我添加了一个适合我的指南。

<Button
    android:id="@+id/button"
    app:layout_constraintTop_toBottomOf="@id/guideline"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintDimensionRatio="H,1:1"
    android:text="Button"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toLeftOf="@+id/button2"
    android:layout_marginTop="0dp" />

<Button
    android:id="@+id/button2"
    app:layout_constraintTop_toBottomOf="@id/guideline"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="Button"
    app:layout_constraintDimensionRatio="H,1:1"
    tools:layout_editor_absoluteY="232dp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintLeft_toRightOf="@+id/button" />

<Button
    android:id="@+id/button3"
    app:layout_constraintTop_toBottomOf="@id/button"
    android:layout_width="0dp"
    android:layout_height="0dp"

    android:text="Button"
    app:layout_constraintDimensionRatio="H,1:1"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toLeftOf="@+id/button2"
    />

<Button
    android:id="@+id/button4"
    app:layout_constraintTop_toBottomOf="@id/button2"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="Button"
    app:layout_constraintDimensionRatio="H,1:1"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintLeft_toRightOf="@+id/button" />

<android.support.constraint.Guideline
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/guideline"
    app:layout_constraintGuide_begin="87dp"
    android:orientation="horizontal" />