我想在我的应用程序中添加scrollview。该应用程序包含两个线性布局,我在其中动态添加数据。我想滚动所有屏幕,因此它显示所有数据。当我尝试添加它时显示错误,“滚动视图只能有一个孩子”。如何在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>
答案 0 :(得分:1)
ScrollView与FrameLayout非常相似。当那里只有一个视图时,它们往往更好地工作。使ScrollView成为父视图并将所有内容放在其中。
答案 1 :(得分:0)
就像它说的那样,一个scrollview只能有一个孩子,只需将布局作为孩子,并将所有内容放在此布局中。
<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>
答案 2 :(得分:0)
只需将相对布局放在scrollview中就可以了。
<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>
答案 3 :(得分:0)
将整个布局包裹在Relative Layout或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