GridLayout的rowOrderPreserved和columnOrderPreserved

use*_*534 6 android android-layout android-gridlayout

可有人请解释什么GridLayoutrowOrderPreservedcolumnOrderPreserved是什么意思?

我不明白这些文档.将值设置为true或false有什么区别.插图将非常有帮助.

Ale*_*lex 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>
Run Code Online (Sandbox Code Playgroud)

此 xml 生成一个视图,如下所示,其中“下一步”按钮位于屏幕之外:

在此输入图像描述

这是因为第一个EditText元素定义了第二列的宽度。在第四列中定义“下一步”按钮时,它必须位于第二列的右侧。

现在,将属性更改columnOrderPreservedfalse使 android可以自由地以最适合给定约束的任何顺序放置水平列边界。(参见文档)结果如下图所示:

在此输入图像描述