【问题标题】:A scroll view can have only one child Android XML file滚动视图只能有一个子 Android XML 文件
【发布时间】:2014-07-12 06:31:39
【问题描述】:

所以,我想在我的布局上有一个滚动视图。我这样做并得到了a scroll view can only have one child

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="95dip"
        android:layout_marginRight="5dip"
        android:layout_marginTop="10dip"
        android:text="Latitude: "
        android:textSize="15dip" >

    </TextView>

    <TextView
        android:id="@+id/TextView02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="unknown"
        android:textSize="15dip" >

    </TextView>
</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/TextView03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="90dip"
        android:layout_marginRight="5dip"
        android:text="Longitute: "
        android:textSize="15dip" >
    </TextView>

    <TextView
        android:id="@+id/TextView04"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="unknown"
        android:textSize="15dip" >
    </TextView>
</LinearLayout>

<Button
    android:id="@+id/button1"
    android:layout_width="130dip"
    android:layout_height="30dip"
    android:layout_marginLeft="95dip"
    android:layout_marginTop="10dip"
    android:text="Find Coordinates"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextName"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="25dip"
    android:layout_marginTop="20dip"
    android:ems="10"
    android:hint="Enter Location Name"
    android:textSize="10dip" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/editTextPhone"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="25dip"
    android:layout_marginTop="0dip"
    android:ems="10"
    android:hint="Enter Phone Number"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextEmail"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="25dip"
    android:ems="10"
    android:hint="Enter Email"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextDesc"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="25dip"
    android:ems="10"
    android:hint="Enter Description"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextFlowers"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dip"
    android:hint="Flowers"
    android:ems="10"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextPlants"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="180dip"
    android:layout_marginTop="-35dip"
    android:hint="Plants"
    android:ems="10"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextFruit"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dip"
    android:hint="Fruit"
    android:ems="10"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextVeggies"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="180dip"
    android:layout_marginTop="-35dip"
    android:hint="Veggies"
    android:ems="10"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextSun"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="115dip"
    android:ems="10"
    android:hint="Sunday"
    android:textSize="10dip" />

<Button
    android:id="@+id/saveLocation"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="90dip"
    android:layout_marginTop="10dip"
    android:text="Save Location" />

<Button
    android:id="@+id/seeAll"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="120dip"
    android:text="See all" />

</ScrollView> 

然后,按照这个问题的答案

java.lang.IllegalStateException: ScrollView can host only one direct child

我这样做了:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="95dip"
        android:layout_marginRight="5dip"
        android:layout_marginTop="10dip"
        android:text="Latitude: "
        android:textSize="15dip" >

    </TextView>

    <TextView
        android:id="@+id/TextView02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="unknown"
        android:textSize="15dip" >

    </TextView>
</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation = "vertical" >

    <TextView
        android:id="@+id/TextView03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="90dip"
        android:layout_marginRight="5dip"
        android:text="Longitute: "
        android:textSize="15dip" >
    </TextView>

    <TextView
        android:id="@+id/TextView04"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="unknown"
        android:textSize="15dip" >
    </TextView>
</LinearLayout>

<Button
    android:id="@+id/button1"
    android:layout_width="130dip"
    android:layout_height="30dip"
    android:layout_marginLeft="95dip"
    android:layout_marginTop="10dip"
    android:text="Find Coordinates"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextName"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="25dip"
    android:layout_marginTop="20dip"
    android:ems="10"
    android:hint="Enter Location Name"
    android:textSize="10dip" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/editTextPhone"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="25dip"
    android:layout_marginTop="0dip"
    android:ems="10"
    android:hint="Enter Phone Number"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextEmail"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="25dip"
    android:ems="10"
    android:hint="Enter Email"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextDesc"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="25dip"
    android:ems="10"
    android:hint="Enter Description"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextFlowers"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dip"
    android:hint="Flowers"
    android:ems="10"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextPlants"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="180dip"
    android:layout_marginTop="-35dip"
    android:hint="Plants"
    android:ems="10"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextFruit"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dip"
    android:hint="Fruit"
    android:ems="10"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextVeggies"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="180dip"
    android:layout_marginTop="-35dip"
    android:hint="Veggies"
    android:ems="10"
    android:textSize="10dip" />

<EditText
    android:id="@+id/editTextSun"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="115dip"
    android:ems="10"
    android:hint="Sunday"
    android:textSize="10dip" />

<Button
    android:id="@+id/saveLocation"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="90dip"
    android:layout_marginTop="10dip"
    android:text="Save Location" />

<Button
    android:id="@+id/seeAll"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="120dip"
    android:text="See all" />

</ScrollView> 

但仍然没有运气。有任何想法吗?谢谢。

【问题讨论】:

  • 您尝试使用 ScrollView 作为布局?通常,ScrollView 用于允许用户滚动其单个子视图,而不是使您的整个 Activity UI 可滚动。请澄清你实际上想要在那里完成什么。

标签: java android layout scrollview


【解决方案1】:

这里的关键是

ScrollView 只能承载一个直接

“直接”是关键字。所以你可以拥有

<ScrollView
    ...>
    <LinearLayout>
       ....
       <!-- you can have as many Views in here as you want -->
    </LinearLayout>
</ScrollView>

因此,上述示例中的LinearLayout 将是您的一个直系子女。那个孩子可以有你想要的孩子。这意味着您可以在第一个 LinearLayouts 中拥有所有其他 LinearLayouts。但是同一层级上不能有多个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    相关资源
    最近更新 更多