是否可以在GridView中均匀分配按钮数量?

时间:2017-07-22 21:49:15

标签: android gridview

在GridView的适配器中,我看到当内容布局膨胀时,它必须包含宽度和高度。如何均匀分布GridView的内容,以便内容占用相等的空间?

例如,我想创建一个类似于此的3x3方块: enter image description here

另外,我不希望屏幕可滚动。

1 个答案:

答案 0 :(得分:0)

如果您正在为API 21及更高版本开发,GridLayout支持" weight"的概念,LinearLayout可能对您很熟悉。所以你可以给每个细胞这些吸引力:

android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"

现在你的GridView(无论你给它的大小)都分为三行甚至三列。

如果您必须支持早期的API级别,最好的选择是使用ConstraintLayout。使用此策略,您再次为每个孩子提供宽度+高度为0dp,但现在您需要设置约束链,以便每行均匀分割并且每列均匀分割。类似的东西:

<View
    android:id="@+id/child1"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toLeftOf="@id/child2"/>

<View
    android:id="@+id/child2"
    app:layout_constraintLeft_toRightOf="@id/child1"
    app:layout_constraintRight_toLeftOf="@id/child3"/>

<View
    android:id="@+id/child3"
    app:layout_constraintLeft_toRightOf="@id/child2"
    app:layout_constraintRight_toRightOf="parent"/>

在垂直方向做同样的事情:

<View
    android:id="@+id/child1"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toTopOf="@id/child4"/>

<View
    android:id="@+id/child4"
    app:layout_constraintTop_toBottomOf="@id/child1"
    app:layout_constraintBottom_toTopOf="@id/child7"/>

<View
    android:id="@+id/child7"
    app:layout_constraintTop_toBottomOf="@id/child4"
    app:layout_constraintBottom_toBottomOf="parent"/>