【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

你可能感兴趣的:(android,android,GridLayout,等比分布,元素大小相等)