网格布局的rowOrderPreserved和columnOrderPreserved

10
请问有人能解释一下什么是 GridLayoutrowOrderPreservedcolumnOrderPreserved 吗?我不理解文档中的描述。将这些值设置为true或false有何区别?如果有图示,会更容易理解。
1个回答

4
考虑以下带有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 生成了一个视图,其中“下一步”按钮在屏幕外部。

enter image description here

这是因为第一个EditText元素定义了第二列的宽度。在第四列定义“下一步”按钮时,它必须位于第二列右侧。
现在,将属性columnOrderPreserved更改为false,Android可以自由地按照最适合给定约束条件的顺序放置水平列边界。(请参见文档)结果如此图像所示:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接