【Android】GridLayout实现等比布局
GridLayout是十年前的老布局了,因为太久没用过,导致细节方面已经记不太清楚了
初衷是想让GridLayout中每行每列的元素大小都相等,结果怎么试都没有效果
原来是要只设置比例,不设置宽高才行,特意记录下
<GridLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:columnCount="6"
android:rowCount="2">
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="5dp"
android:background="#F00" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="5dp"
android:background="#0F0" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="5dp"
android:background="#F00" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="5dp"
android:background="#0F0" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="5dp"
android:background="#F00" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="5dp"
android:background="#0F0" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="5dp"
android:background="#F00" />
</GridLayout>
需要满足以下几点,才能实现自动均分行列空间
- Layout必须指定确定的width和height,不能用wrap
- Layout必须明确指定行列数
- Child的width和height必须为0
- Child的rowWeight和columnWeight必须设置为1