Android &引用;呈现期间引发的异常:列索引(开始+;span)必须为';t超过列计数&引用;

Android &引用;呈现期间引发的异常:列索引(开始+;span)必须为';t超过列计数&引用;,android,layout,android-gridlayout,Android,Layout,Android Gridlayout,我是Android编程新手,我正在尝试创建一个简单的布局,其中有三项并排 我正在使用GridLayout来实现这一点。我创建了一个包含三列的GridLayout。然后我在上面加了三个数字图标。当我这样做时,columnCount上升到4。当我试图把它改回3时,我得到了错误 呈现期间引发的异常:列索引(开始+跨度)不得超过列计数。 这很奇怪。为什么列索引超过了列计数?此外,为什么列在触摸屏幕右侧之前结束 XML文件 <?xml version="1.0" encoding="utf-8"?

我是Android编程新手,我正在尝试创建一个简单的布局,其中有三项并排

我正在使用GridLayout来实现这一点。我创建了一个包含三列的GridLayout。然后我在上面加了三个数字图标。当我这样做时,
columnCount
上升到
4
。当我试图把它改回3时,我得到了错误

呈现期间引发的异常:列索引(开始+跨度)不得超过列计数。

这很奇怪。为什么列索引超过了列计数?此外,为什么列在触摸屏幕右侧之前结束

XML文件

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/GridLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:columnCount="2"
    android:orientation="horizontal" >

    <NumberPicker
        android:id="@+id/NumberPicker01"
        android:layout_gravity="left"
        android:gravity="center_vertical" />

    <NumberPicker
        android:id="@+id/NumberPicker02"
        android:layout_column="0"
        android:layout_gravity="fill_horizontal" />

    <NumberPicker
        android:id="@+id/NumberPicker03"
        android:layout_column="0" />

    <Space
        android:layout_column="1"
        android:layout_gravity="fill_vertical"
        android:layout_row="3" />

</GridLayout>

当我使用布局xml时,它将三个数字放在彼此下方,即三行。选择器1进入第0行和第0列。对于选择器2和选择器3,指定列0,以便它们都进入新行。此外,您还具有水平填充功能,可将任何内容向右推离屏幕。你为什么在那里有空间?最后,列数为2。列计数应为3

<GridLayout  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="3"
android:orientation="horizontal" >

<NumberPicker
    android:id="@+id/NumberPicker01"
    android:layout_column="0" />

<NumberPicker
    android:id="@+id/NumberPicker02"
    android:layout_column="1"/>

<NumberPicker
    android:id="@+id/NumberPicker03"
    android:layout_column="2" />

</GridLayout>

结果如下所示:


您可以通过添加边距在数字选择器之间添加空间。

您可以发布更多详细信息,例如布局xml文件吗?任何有助于详细了解您正在做什么的内容。@user3460486当然,我添加了它,但在最后一个数字图标后面的右侧仍然有额外的空间。有没有办法将这三个元素居中?据我所知,没有任何属性像layout_centerHorizontal这样。对于网格布局,您可以使用另外两列:左侧和右侧的空格,以及根据屏幕大小动态设置空格宽度=大量工作。对于NumberPicker2,您可以使用相对布局和布局水平。然后将选择器1放在左侧,选择器2放在右侧。