"渲染期间引发异常:列索引(start + span)不得超过列数。 "

时间:2014-08-28 04:42:17

标签: android layout android-gridlayout

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

我使用GridLayout尝试完成此任务。我创建了一个包含三列的GridLayout。然后我添加了三个NumberPickers。当我这样做时,columnCount上升到4。当我试图将其更改回3时,我收到了错误

Exception raised during rendering: column indices (start + span) mustn't exceed the column count.

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

Android Screen

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>

1 个答案:

答案 0 :(得分:2)

当我使用你的布局xml时,它将三个数字放在彼此之下,即三行。 Picker 1进入第0行和第0列。对于Picker 2和3,您指定第0列,因此它们都进入新行。此外,你有水平填充,可以将任何内容推到屏幕右侧。你为什么在那里有空间?最后,您将columnCount设置为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>

结果如下:

enter image description here

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