如果ScrollView只支持一个直接子项,如何显示整个布局可滚动?

时间:2012-06-07 08:00:45

标签: android listview scrollview android-linearlayout

这里我展示了我的应用程序的xml布局。我希望使用Scrollview滚动整个页面。但是我无法使用.ScrollView只支持一个直接的child.But我想滚动整个内容。请帮助我解决这个问题?

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent" android:layout_width="match_parent"
    android:orientation="vertical"
    >


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:orientation="horizontal" >

            <ImageButton
                android:id="@+id/prev"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_gravity="left"
                android:background="@null"
                android:src="@drawable/left_white" />

            <EditText
                android:layout_width="185dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="25dp"
                android:hint="" 
                android:visibility="invisible"
                />

            <ImageButton
                android:id="@+id/tour"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_gravity="right"
                android:layout_marginLeft="17dp"
                android:background="@null"
                android:src="@drawable/logo" />

            </LinearLayout>
                        <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_gravity="center"
                >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="What interests you?"
        android:textSize="20dp" >

</TextView>
</LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="fill_horizontal"
                android:orientation="horizontal"
                >

                <com.android.example.CoverFlow
                    android:id="@+id/coverFlow"
                    android:layout_width="match_parent"
                    android:layout_height="150dip"/>

            </LinearLayout>
<LinearLayout 
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginTop="17dp"
    >

</LinearLayout>
<LinearLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:divider="#b5b5b5"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/list_selector" />

</LinearLayout>

</LinearLayout>

5 个答案:

答案 0 :(得分:2)

将Scroll视图放在主LinearLayout之前。

<LinearLayout>
    <ScrollView>
       <LinearLayout>
             // This Linear Layout contains your entire layout code
       </LinearLayout>
    </Scrollview>
   </LinearLayout>

答案 1 :(得分:1)

你可以这样做

<your main layout>    
<ScrollView>
<LinearLayout>

 your whole layout code here
</LinearLayout>
</Scrollview>
</your main layout>

答案 2 :(得分:0)

同意。它只支持一个孩子。但是,如果您希望上述xml文件可滚动,请将主要的Linearlayout放在scrollView标记内。主要的LinearLayout将被视为ScrollView的单个子项。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent" android:layout_width="match_parent"
    android:orientation="vertical"
    >
    <LinearLayout 
    android:layout_height="match_parent" android:layout_width="match_parent"
    android:orientation="vertical"
    >
    ...
</ScrollView>

答案 3 :(得分:0)

 <?xml version="1.0" encoding="utf-8"?>

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="fill_parent"
         android:layout_width="fill_parent"
        android:orientation="vertical" >

    <!-- add your entire layout here -->



    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="match_parent" android:layout_width="match_parent"
        android:orientation="vertical">


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/prev"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_gravity="left"
                    android:background="@null"
                    android:src="@drawable/left_white" />

                <EditText
                    android:layout_width="185dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="25dp"
                    android:hint="" 
                    android:visibility="invisible"
                    />

                <ImageButton
                    android:id="@+id/tour"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:layout_gravity="right"
                    android:layout_marginLeft="17dp"
                    android:background="@null"
                    android:src="@drawable/logo" />

                </LinearLayout>
                            <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:layout_gravity="center"
                    >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="What interests you?"
            android:textSize="20dp" >

    </TextView>
    </LinearLayout>
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="fill_horizontal"
                    android:orientation="horizontal"
                    >

                    <com.android.example.CoverFlow
                        android:id="@+id/coverFlow"
                        android:layout_width="match_parent"
                        android:layout_height="150dip"/>

                </LinearLayout>
    <LinearLayout 
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginTop="17dp"
        >

    </LinearLayout>
    <LinearLayout 
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:divider="#b5b5b5"
            android:dividerHeight="1dp"
            android:listSelector="@drawable/list_selector" />

    </LinearLayout>

    </LinearLayout>

    </ScrollView>

答案 4 :(得分:0)

您无法在ScrollView中使用ListView。我们很多人都遇到了这个问题。所以这是这个问题的解决方案:

  1. 创建仅包含ListView
  2. list.xml
  3. 创建一个 header.xml ,其中包含ListView的XML代码
  4. 创建一个 footer.xml ,其中包含ListView的XML代码
  5. 最后,从您的主类中获取ListView引用并添加列表页眉和页脚。希望这会奏效。如果您有任何问题,请确保您的评论。