约束布局中的网格

时间:2017-10-29 07:09:25

标签: android xml android-layout android-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,所以我不能使用父母的底部。

1 个答案:

答案 0 :(得分:3)

我添加了一份适用于我的指南。

enter image description here

<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" />