有人可以解释GridLayout
的rowOrderPreserved
和columnOrderPreserved
是什么意思吗?
我不了解这些文档。将值设置为true或false有什么区别。插图将非常有帮助。
最佳答案
考虑下面带有GridLayout
的代码:
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:useDefaultMargins="true"
android:alignmentMode="alignBounds"
android:columnOrderPreserved="true"
android:columnCount="4"
>
<TextView
android:text="Email setup"
android:textSize="32dip"
android:layout_columnSpan="4"
android:layout_gravity="center_horizontal"
/>
<TextView
android:text="Email address:"
android:layout_gravity="left"
/>
<EditText
android:ems="10"
/>
<TextView
android:text="Password:"
android:layout_column="0"
android:layout_gravity="right"
/>
<EditText
android:ems="8"
/>
<Button
android:text="Next"
android:layout_row="4"
android:layout_column="3"
/>
</GridLayout>
此xml生成如下 View ,其中“下一步”按钮位于屏幕外部:
这是因为第一个
EditText
元素定义了第二列的宽度。在第四列中定义“下一步”按钮时,它必须在第二列的右边。现在,将属性
columnOrderPreserved
更改为false
可使android自由地以最适合给定约束的顺序放置水平列边界。 (请参阅documentation)结果如下图所示: