ScrollView不适用于我的布局

时间:2016-04-08 08:55:17

标签: android android-layout scrollview

下面是我的包含ScrollView的xml文件,但滚动不起作用,当我运行我的程序时,RecyclerView(在底部)项目在UI显示中丢失,当ScrollView被删除时显示。

<?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" >

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:background="#fff">

    <ImageView
        android:id="@+id/movie_image"
        android:layout_width="250px"
        android:layout_height="300px"
        android:layout_alignParentLeft="true"
        android:scaleType="centerCrop"
        android:src="@drawable/jellybean"/>

    <!-- title Label -->
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/movie_image"
        android:paddingLeft="20dip"
        android:textColor="@color/black"
        android:text="Title "
        android:singleLine="true"
        android:ellipsize="end"
        android:textSize="18sp"
        android:textStyle="bold" />

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/popularity_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dp"
        android:paddingBottom="10dp"
        android:orientation="horizontal"
        android:layout_toRightOf="@+id/movie_image"
        android:layout_below="@+id/title">

        <!-- popularity label -->
        <ImageView
            android:id="@+id/star1"
            android:layout_width="45px"
            android:layout_height="45px"
            android:layout_toRightOf="@+id/popularity"
            android:src="@drawable/blank_star" />
        <ImageView
            android:id="@+id/star2"
            android:layout_width="45px"
            android:layout_height="45px"
            android:layout_toRightOf="@+id/star1"
            android:src="@drawable/blank_star"/>
        <ImageView
            android:id="@+id/star3"
            android:layout_width="45px"
            android:layout_height="45px"
            android:layout_toRightOf="@+id/star2"
            android:src="@drawable/blank_star"/>
        <ImageView
            android:id="@+id/star4"
            android:layout_width="45px"
            android:layout_height="45px"
            android:layout_toRightOf="@+id/star3"
            android:scaleType="centerCrop"
            android:src="@drawable/blank_star"/>
        <ImageView
            android:id="@+id/star5"
            android:layout_width="45px"
            android:layout_height="45px"
            android:layout_toRightOf="@+id/star4"
            android:src="@drawable/blank_star"/>

    </RelativeLayout>

    <!-- tagline label -->
    <TextView
        android:id="@+id/tagline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="tagline"
        android:paddingLeft="20dip"
        android:layout_toRightOf="@+id/movie_image"
        android:layout_below="@+id/popularity_list"
        android:textColor="@color/black" />

    <!-- release date label -->
    <TextView
        android:id="@+id/release_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="20dip"
        android:layout_toRightOf="@+id/movie_image"
        android:layout_below="@+id/tagline"
        android:text="date "
        android:textColor="@color/black" />

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/budget_group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dip"
        android:orientation="horizontal"
        android:layout_toRightOf="@+id/movie_image"
        android:layout_below="@+id/release_date">

        <!-- Budget label -->
        <TextView
            android:id="@+id/budget_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Budget : "
            android:textColor="@color/black" />
        <TextView
            android:id="@+id/budget"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/budget_text"
            android:text="budget "
            android:textColor="@color/black" />
    </RelativeLayout>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/revenue_group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dip"
        android:orientation="horizontal"
        android:layout_toRightOf="@+id/movie_image"
        android:layout_below="@+id/budget_group">

        <!-- Revenue label -->
        <TextView
            android:id="@+id/revenue_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Revenue : "
            android:textColor="@color/black" />
        <TextView
            android:id="@+id/revenue"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/revenue_text"
            android:text="revenue "
            android:textColor="@color/black" />
    </RelativeLayout>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/status_group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dip"
        android:orientation="horizontal"
        android:layout_toRightOf="@+id/movie_image"
        android:layout_below="@+id/revenue_group">

        <!-- Movie status label -->
        <TextView
            android:id="@+id/status_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Status : "
            android:textColor="@color/black" />
        <TextView
            android:id="@+id/status"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/status_text"
            android:text="status "
            android:textColor="@color/black" />
    </RelativeLayout>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/Vote_count_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="10dip"
        android:layout_below="@+id/movie_image">

        <!-- favourites label -->
        <ImageView
            android:id="@+id/favourites"
            android:layout_width="50px"
            android:layout_height="50px"
            android:scaleType="centerCrop"
            android:src="@drawable/blank_star"/>

        <TextView
            android:id="@+id/opening_brac"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/favourites"
            android:paddingLeft="10dip"
            android:text="("
            android:textColor="@color/black" />

        <!-- Vote average label -->
        <TextView
            android:id="@+id/votes_avg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/opening_brac"
            android:text="Votes_avg "
            android:paddingBottom="2dip"
            android:textColor="@color/black" />

        <TextView
            android:id="@+id/after_vote_avg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/votes_avg"
            android:text="/10)"
            android:textColor="@color/black" />

        <!-- Total vote counts label -->
        <TextView
            android:id="@+id/votes_count"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/after_vote_avg"
            android:layout_toRightOf="@+id/favourites"
            android:paddingLeft="10dip"
            android:text="count"
            android:textColor="@color/black" />

        <TextView
            android:id="@+id/closing"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/after_vote_avg"
            android:layout_toRightOf="@+id/votes_count"
            android:text=" users."
            android:textColor="@color/black" />

        <!-- Overview label -->
        <TextView
            android:id="@+id/overview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/closing"
            android:text="Overview"
            android:paddingTop="20dp"
            android:textColor="@color/black" />
    </RelativeLayout>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/fav_watchlist_icons"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="10dip"
        android:gravity="center"
        android:layout_below="@+id/Vote_count_list">

        <!-- My favourite icon and text group -->
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/fav_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingTop="10dip">

            <ImageView
                android:id="@+id/fav_icon"
                android:layout_width="160px"
                android:layout_height="160px"
                android:scaleType="centerCrop"
                android:src="@drawable/favorite_disable_normal"/>

            <TextView
                android:id="@+id/fav_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/fav_icon"
                android:paddingRight="20dp"
                android:paddingTop="10dp"
                android:text="My Favourite"
                android:textColor="@color/black" />
        </RelativeLayout>

        <!-- My watchlist icon and text group -->
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/watchlist_icons"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingTop="10dip"
            android:layout_toRightOf="@+id/fav_group">

            <ImageView
                android:id="@+id/watchlist_icon"
                android:layout_width="160px"
                android:layout_height="160px"
                android:scaleType="centerCrop"
                android:src="@drawable/watchlist_disable_normal"/>

            <TextView
                android:id="@+id/watchlist_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="20dp"
                android:paddingTop="10dp"
                android:text="My Watchlist"
                android:layout_below="@id/watchlist_icon"
                android:textColor="@color/black" />
        </RelativeLayout>

    </RelativeLayout>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/poster_list"
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="15dip"
        android:layout_below="@+id/fav_watchlist_icons">

        <!--  Recycler View  -->
        <android.support.v7.widget.RecyclerView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/recycler_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scrollbars="none" />

    </RelativeLayout>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/trailor_list"
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="5dip"
        android:layout_below="@+id/poster_list">

        <!--  Recycler View for Video links -->
        <android.support.v7.widget.RecyclerView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/recycler_view_trailers"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scrollbars="none" />

    </RelativeLayout>

    </RelativeLayout>

</ScrollView> 

我在其他帖子中看到提到ScrollView应该包裹在我已经完成的单个对象上,但它仍然无效。

5 个答案:

答案 0 :(得分:0)

尝试以下方法 -

  1. 让您的所有相对布局成为线性布局的子项(经过一些研究发现它是正确的方法)。
  2. 为您的ScrollView布局提供最小高度(android:minHeight)。
  3. 它应该有用。

答案 1 :(得分:0)

我有同样的问题。实际上主要的问题是scrollview。

Note:不要将scrollview用作父级。只需在父布局中使用scrollview,即LinearLayout或RelativeLayout。

尝试这样的事情:

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

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:background="#fff">

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

            <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                >

        <ImageView
            android:id="@+id/movie_image"
            android:layout_width="250px"
            android:layout_height="300px"
            android:layout_alignParentLeft="true"
            android:scaleType="centerCrop"
            android:src="@drawable/jellybean"/>

        <!-- title Label -->
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/movie_image"
            android:paddingLeft="20dip"
            android:textColor="@color/black"
            android:text="Title "
            android:singleLine="true"
            android:ellipsize="end"
            android:textSize="18sp"
            android:textStyle="bold" />

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/popularity_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="20dp"
            android:paddingBottom="10dp"
            android:orientation="horizontal"
            android:layout_toRightOf="@+id/movie_image"
            android:layout_below="@+id/title">

            <!-- popularity label -->
            <ImageView
                android:id="@+id/star1"
                android:layout_width="45px"
                android:layout_height="45px"
                android:layout_toRightOf="@+id/popularity"
                android:src="@drawable/blank_star" />
            <ImageView
                android:id="@+id/star2"
                android:layout_width="45px"
                android:layout_height="45px"
                android:layout_toRightOf="@+id/star1"
                android:src="@drawable/blank_star"/>
            <ImageView
                android:id="@+id/star3"
                android:layout_width="45px"
                android:layout_height="45px"
                android:layout_toRightOf="@+id/star2"
                android:src="@drawable/blank_star"/>
            <ImageView
                android:id="@+id/star4"
                android:layout_width="45px"
                android:layout_height="45px"
                android:layout_toRightOf="@+id/star3"
                android:scaleType="centerCrop"
                android:src="@drawable/blank_star"/>
            <ImageView
                android:id="@+id/star5"
                android:layout_width="45px"
                android:layout_height="45px"
                android:layout_toRightOf="@+id/star4"
                android:src="@drawable/blank_star"/>

        </RelativeLayout>

        <!-- tagline label -->
        <TextView
            android:id="@+id/tagline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="tagline"
            android:paddingLeft="20dip"
            android:layout_toRightOf="@+id/movie_image"
            android:layout_below="@+id/popularity_list"
            android:textColor="@color/black" />

        <!-- release date label -->
        <TextView
            android:id="@+id/release_date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="20dip"
            android:layout_toRightOf="@+id/movie_image"
            android:layout_below="@+id/tagline"
            android:text="date "
            android:textColor="@color/black" />

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/budget_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="20dip"
            android:orientation="horizontal"
            android:layout_toRightOf="@+id/movie_image"
            android:layout_below="@+id/release_date">

            <!-- Budget label -->
            <TextView
                android:id="@+id/budget_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Budget : "
                android:textColor="@color/black" />
            <TextView
                android:id="@+id/budget"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/budget_text"
                android:text="budget "
                android:textColor="@color/black" />
        </RelativeLayout>

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/revenue_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="20dip"
            android:orientation="horizontal"
            android:layout_toRightOf="@+id/movie_image"
            android:layout_below="@+id/budget_group">

            <!-- Revenue label -->
            <TextView
                android:id="@+id/revenue_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Revenue : "
                android:textColor="@color/black" />
            <TextView
                android:id="@+id/revenue"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/revenue_text"
                android:text="revenue "
                android:textColor="@color/black" />
        </RelativeLayout>

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/status_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="20dip"
            android:orientation="horizontal"
            android:layout_toRightOf="@+id/movie_image"
            android:layout_below="@+id/revenue_group">

            <!-- Movie status label -->
            <TextView
                android:id="@+id/status_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Status : "
                android:textColor="@color/black" />
            <TextView
                android:id="@+id/status"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/status_text"
                android:text="status "
                android:textColor="@color/black" />
        </RelativeLayout>

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/Vote_count_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:paddingTop="10dip"
            android:layout_below="@+id/movie_image">

            <!-- favourites label -->
            <ImageView
                android:id="@+id/favourites"
                android:layout_width="50px"
                android:layout_height="50px"
                android:scaleType="centerCrop"
                android:src="@drawable/blank_star"/>

            <TextView
                android:id="@+id/opening_brac"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/favourites"
                android:paddingLeft="10dip"
                android:text="("
                android:textColor="@color/black" />

            <!-- Vote average label -->
            <TextView
                android:id="@+id/votes_avg"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/opening_brac"
                android:text="Votes_avg "
                android:paddingBottom="2dip"
                android:textColor="@color/black" />

            <TextView
                android:id="@+id/after_vote_avg"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/votes_avg"
                android:text="/10)"
                android:textColor="@color/black" />

            <!-- Total vote counts label -->
            <TextView
                android:id="@+id/votes_count"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/after_vote_avg"
                android:layout_toRightOf="@+id/favourites"
                android:paddingLeft="10dip"
                android:text="count"
                android:textColor="@color/black" />

            <TextView
                android:id="@+id/closing"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/after_vote_avg"
                android:layout_toRightOf="@+id/votes_count"
                android:text=" users."
                android:textColor="@color/black" />

            <!-- Overview label -->
            <TextView
                android:id="@+id/overview"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/closing"
                android:text="Overview"
                android:paddingTop="20dp"
                android:textColor="@color/black" />
        </RelativeLayout>

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/fav_watchlist_icons"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:paddingTop="10dip"
            android:gravity="center"
            android:layout_below="@+id/Vote_count_list">

            <!-- My favourite icon and text group -->
            <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/fav_group"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:paddingTop="10dip">

                <ImageView
                    android:id="@+id/fav_icon"
                    android:layout_width="160px"
                    android:layout_height="160px"
                    android:scaleType="centerCrop"
                    android:src="@drawable/favorite_disable_normal"/>

                <TextView
                    android:id="@+id/fav_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/fav_icon"
                    android:paddingRight="20dp"
                    android:paddingTop="10dp"
                    android:text="My Favourite"
                    android:textColor="@color/black" />
            </RelativeLayout>

            <!-- My watchlist icon and text group -->
            <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/watchlist_icons"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:paddingTop="10dip"
                android:layout_toRightOf="@+id/fav_group">

                <ImageView
                    android:id="@+id/watchlist_icon"
                    android:layout_width="160px"
                    android:layout_height="160px"
                    android:scaleType="centerCrop"
                    android:src="@drawable/watchlist_disable_normal"/>

                <TextView
                    android:id="@+id/watchlist_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingRight="20dp"
                    android:paddingTop="10dp"
                    android:text="My Watchlist"
                    android:layout_below="@id/watchlist_icon"
                    android:textColor="@color/black" />
            </RelativeLayout>

        </RelativeLayout>

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/poster_list"
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="15dip"
            android:layout_below="@+id/fav_watchlist_icons">

            <!--  Recycler View  -->
            <android.support.v7.widget.RecyclerView
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/recycler_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scrollbars="none" />

        </RelativeLayout>

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/trailor_list"
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="5dip"
            android:layout_below="@+id/poster_list">

            <!--  Recycler View for Video links -->
            <android.support.v7.widget.RecyclerView
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/recycler_view_trailers"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scrollbars="none" />

        </RelativeLayout>
            </RelativeLayout>
        </ScrollView>
    </RelativeLayout>

答案 2 :(得分:0)

ScrollView只能有一个子组或ViewGroup。

在你的布局中你有2个相对布局的孩子。所以你们两个合并为一个ViewGruop。

将ScrollView的宽度和高度设置为fill_parent

答案 3 :(得分:0)

  

在Scrollview中使用android:fillViewPort:true

答案 4 :(得分:0)

您可以使用android:fillViewport =“true”来使NestedScrollView测量RecyclerView。 RecyclerView将填充剩余高度。因此,如果要滚动NestScrollView,可以设置RecyclerView的minHeight。

请参考以下链接: How to use RecyclerView inside NestedScrollView?