在GridView的适配器中,我看到当内容布局膨胀时,它必须包含宽度和高度。如何均匀分布GridView的内容,以便内容占用相等的空间?
另外,我不希望屏幕可滚动。
答案 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"/>