我正在努力制作一个简单的应用程序,并且在主页中我需要将6张cardview以两列和三行排序。
如果我在gridlayout中理解正确,则有两列占据屏幕宽度的一半,并且有三行将高度分成三个相等的部分。
我想要的是,在网格布局的每个单元格中,cardview都集中在其中;
我尝试了layout_gravity="center"
这样的解决方案,但是卡片视图仍然保留在屏幕的左侧,那么我该怎么做呢?
这是我的xml代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
android:layout_width="match_parent"
app:columnCount="2"
app:rowCount="3"
android:layout_gravity="center">
<android.support.v7.widget.CardView android:id="@+id/card1"
android:layout_height="@dimen/grid_card"
android:layout_width="@dimen/grid_card"
app:layout_column="0"
app:layout_row="0" />
<android.support.v7.widget.CardView android:id="@+id/card2"
android:layout_height="@dimen/grid_card"
android:layout_width="@dimen/grid_card"
app:layout_column="1"
app:layout_row="0" />
<android.support.v7.widget.CardView android:id="@+id/card3"
android:layout_height="@dimen/grid_card"
android:layout_width="@dimen/grid_card"
app:layout_column="0"
app:layout_row="1" />
<android.support.v7.widget.CardView android:id="@+id/card4"
android:layout_height="@dimen/grid_card"
android:layout_width="@dimen/grid_card"
app:layout_column="1"
app:layout_row="1" />
<android.support.v7.widget.CardView android:id="@+id/card5"
android:layout_height="@dimen/grid_card"
android:layout_width="@dimen/grid_card"
app:layout_column="0"
app:layout_row="2" />
<android.support.v7.widget.CardView android:id="@+id/card6"
android:layout_height="@dimen/grid_card"
android:layout_width="@dimen/grid_card"
app:layout_column="1"
app:layout_row="2"/>
</android.support.v7.widget.GridLayout>
答案 0 :(得分:1)
将这三个属性添加到每个<CardView>
代码中:
app:layout_gravity="center"
app:layout_columnWeight="1"
app:layout_rowWeight="1"
重量吸引力将确保网格中的每个单元格占据屏幕的六分之一,重力attr将确保卡片在其单元格中居中。