0

我是 Android 新手,我正在尝试使用 Gridlayout,但是遇到了一些麻烦,我不知道如何在 Gridlayout 中合并列/行。在下面的代码中,我尝试使用跨度,但在描述编辑文本中,描述列(第 0 列)保持跨越并使其他列(第 1,2 列...)移出屏幕。我该如何解决这个问题?

<GridLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
    android:columnCount="6" android:rowCount="8" android:orientation="horizontal">
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Create Goal"
        android:layout_columnSpan="6"
        android:gravity="center_horizontal"
        android:textSize="20dp"
        android:layout_marginTop="15dp"
        android:id="@+id/textView" android:layout_row="0" android:layout_column="0"
        android:layout_gravity="center_horizontal"/>
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Name"
        android:id="@+id/goalNameLb" android:layout_row="1" android:layout_column="0"
        android:textSize="15dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp"
        android:layout_gravity="fill_horizontal"/>
<EditText
        android:layout_width="wrap_content"
        android:layout_gravity="center_horizontal|left"
        android:layout_height="wrap_content"
        android:layout_columnSpan="5"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:id="@+id/goalName" android:layout_row="1" android:layout_column="1"/>
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_horizontal"
        android:text="Goal Type"
        android:textSize="15dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:id="@+id/goalTypeLb" android:layout_row="2" android:layout_column="0"/>
<RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Short Term"
        android:layout_columnSpan="2"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="10dp"
        android:id="@+id/shortTerm" android:layout_row="3" android:layout_column="0" android:checked="false"/>
<RadioButton
        android:layout_gravity="fill_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Long Term"
        android:layout_marginTop="10dp"
        android:layout_columnSpan="3"
        android:layout_marginLeft="40dp"
        android:id="@+id/longTerm" android:layout_row="3" android:layout_column="2"
        android:checked="false"/>

<TextView
        android:layout_gravity="fill_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Description"
        android:layout_row="4"
        android:layout_column="0"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        />
<EditText
        android:layout_gravity="fill_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:id="@+id/goalName" android:layout_row="5" android:layout_column="0"/>
<TextView
        android:layout_gravity="fill_horizontal"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/deadlineLb"
        android:layout_row="6"
        android:layout_column="0"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:text="Deadline"
        android:textSize="15dp"
        />

</GridLayout>
4

3 回答 3

0

用于layout_columnSpan合并列和layout_rowSpan合并行。您可以在每个控件中设置合并。

在您的情况下,将描述合并TextView到第 1 列和第 2 列:

<TextView
        android:layout_gravity="fill_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Description"
        android:layout_row="4"
        android:layout_column="0"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_columnSpan="2" 
        />

您可以在此处找到更多信息:GridLayout.LayoutParams

于 2019-06-18T03:45:39.960 回答
-1

您正在使用固定值进行布局设计。这可能会导致通用视图出现问题。您可以使用表格布局。例如访问以下链接。1.链接1 2.链接2

于 2013-10-16T10:26:52.787 回答
-1

我知道这是一个老问题,但我有一个替代解决方案。您可以使用 LinearLayout 块来包含多个项目。此 LinearLayout 将被 GridLayout 视为 1 个元素。

于 2017-05-09T09:27:29.453 回答