1

我想在我的应用程序中添加滚动视图。该应用程序包含两个线性布局,我在其中动态添加数据。我想滚动所有屏幕,所以它显示所有数据。当我尝试添加它时显示错误,“滚动视图只能有一个孩子”。如何在 layout.xml 中添加 Scrollview?

这是我的 Layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:id="@+id/myapp"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/my_logo"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:src="@drawable/my_logo" 
        >
    </ImageView>

    <TextView
        android:id="@+id/label1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/label1"
        android:layout_below="@id/my_logo" />

   <Spinner 
       android:id="@+id/spinner1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/label1"/>

   <TextView
        android:id="@+id/label2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/spinner1"
        android:text="@string/label2" />

   <Spinner 
       android:id="@+id/spinner2"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/label2"/>

   <TextView
        android:id="@+id/label3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/spinner2"
        android:text="@string/label3" />


   <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/list"
        android:layout_below="@id/label3"
        >

    </LinearLayout>

   <Button 
       android:id="@+id/submit_button"
       android:layout_below="@id/list2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/submit_button"/>

   <TextView
        android:id="@+id/label4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/submit_button"
        android:text="@string/label4" />

    <LinearLayout 
    android:id="@+id/my_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:layout_below="@id/label4" />

</RelativeLayout>
4

4 回答 4

1

ScrollView 与 FrameLayout 非常相似。当那里只有一个视图时,它们都倾向于更好地工作。使 ScrollView 成为父 View 并将所有内容放在其中。

于 2013-11-12T08:32:39.993 回答
0

就像它说的那样,滚动视图只能有一个孩子,只需将布局作为孩子并将您的所有内容放在此布局中。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">
<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/myapp" >
    <ImageView
        android:id="@+id/my_logo"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:src="@drawable/my_logo" 
        >
    </ImageView>

    <TextView
        android:id="@+id/label1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/label1"
        android:layout_below="@id/my_logo" />

   <Spinner 
       android:id="@+id/spinner1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/label1"/>

   <TextView
        android:id="@+id/label2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/spinner1"
        android:text="@string/label2" />

   <Spinner 
       android:id="@+id/spinner2"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/label2"/>

   <TextView
        android:id="@+id/label3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/spinner2"
        android:text="@string/label3" />


   <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/list"
        android:layout_below="@id/label3"
        >

    </LinearLayout>

   <Button 
       android:id="@+id/submit_button"
       android:layout_below="@id/list2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/submit_button"/>

   <TextView
        android:id="@+id/label4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/submit_button"
        android:text="@string/label4" />

    <LinearLayout 
    android:id="@+id/my_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:layout_below="@id/label4" />
</RelativeLayout>
</ScrollView>
于 2013-11-12T08:29:46.747 回答
0

只需将相对布局放在滚动视图中就可以了

<ScrollView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:id="@+id/myapp"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/my_logo"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        >
    </ImageView>

    <TextView
        android:id="@+id/label1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ss"
        android:layout_below="@id/my_logo" />

   <Spinner 
       android:id="@+id/spinner1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/label1"/>

   <TextView
        android:id="@+id/label2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/spinner1"
        android:text="ss" />

   <Spinner 
       android:id="@+id/spinner2"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/label2"/>

   <TextView
        android:id="@+id/label3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/spinner2"
        android:text="ss" />


   <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/list"
        android:layout_below="@id/label3"
        >

    </LinearLayout>

   <Button 
       android:id="@+id/submit_button"
       android:layout_below="@id/list"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="sss"/>

   <TextView
        android:id="@+id/label4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/submit_button"
        android:text="ssss" />

    <LinearLayout 
    android:id="@+id/my_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:layout_below="@id/label4" />

</RelativeLayout>
</ScrollView>
于 2013-11-12T08:32:06.653 回答
0

将整个 Layout 包裹在 RelativeLayout 或 FrameLayout 中,然后添加 ScrollView ScrollView 只能有一个直接元素作为子元素

<ScrollView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <RelativeLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
<!--         yourLayout here -->

    </RelativeLayout>
</ScrollView
于 2013-11-12T08:33:04.333 回答