GridLayout设置权重后一行同时有占两格和一格的不起效
时间: 2024-03-20 12:39:17 浏览: 48
在使用GridLayout设置权重时,需要注意以下问题:
1. 在同一行中,每个View的layout_width属性必须设置为0dp,否则权重设置无效。
2. 在同一行中,每个View的layout_columnWeight属性必须设置为非零值,否则权重设置无效。
3. 如果一行中同时有占两格和一格的View,需要将占两格的View设置为layout_columnWeight属性值的两倍,这样才能实现权重效果。
示例代码:
```
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="3">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="View1"
android:layout_columnWeight="1"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="View2"
android:layout_columnWeight="2"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="View3"
android:layout_columnWeight="1"/>
</GridLayout>
```
在上面的示例中,View2占两格,设置了layout_columnWeight="2",而View1和View3都占一格,设置了layout_columnWeight="1"。这样就能实现权重效果了。
阅读全文