如何在XML中添加双ScrollView?

时间:2017-09-07 22:16:22

标签: android xml android-layout scrollview

我目前正在尝试在XML中添加双ScrollView。 我在布局中使用了两种不同的视图 - 列表和类别。

当用户点击某个类别时,视频列表将变为可见,并且类别将变为不可见。 目前,类别按钮是可滚动的,当我单击类别按钮时,视频列表确实可见。但是,问题是视频列表不会滚动。

这是我的布局代码:

<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:ads="http://schemas.android.com/tools"
        android:orientation="vertical"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <!--this is parent layout where I call ListView-->
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/parent01"
            android:descendantFocusability="beforeDescendants"
            android:fitsSystemWindows="true"
            android:focusableInTouchMode="true"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:orientation="vertical"
            android:weightSum="1">

        <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

            <ListView
                    android:id="@+id/listview"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="2dp"
                    android:layout_marginRight="5dp"
                    android:divider="@android:color/transparent"
                    android:dividerHeight="1dp"></ListView>

            <ProgressBar
                    android:id="@+id/nextProgress"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_gravity="center"
                    android:visibility="gone"
                    style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Small"/>
        </RelativeLayout>
    </LinearLayout>

    <!--This is the categories layout-->
    <ScrollView
            android:layout_width="wrap_content"
            android:orientation="vertical"
            android:id="@+id/ll_buttons"
            android:layout_marginTop="60dp"
            android:layout_height="wrap_content">

        <LinearLayout
                android:layout_width="match_parent"
                android:orientation="horizontal"
                android:layout_height="200dp">

            <Button
                    android:layout_weight="0.5"
                    android:id="@+id/button1"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:background="@drawable/rec_img"/>

            <Button
                    android:layout_weight="0.5"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:background="@drawable/rec_img"
                    android:id="@+id/button2"/>
        </LinearLayout>

        <LinearLayout
                android:layout_width="match_parent"
                android:orientation="horizontal"
                android:layout_height="200dp">

            <Button
                    android:layout_weight="0.5"
                    android:id="@+id/button3"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:background="@drawable/rec_img"/>

            <Button
                    android:layout_weight="0.5"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:background="@drawable/rec_img"
                    android:id="@+id/button4"/>
        </LinearLayout>
    </ScrollView>
</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

使用嵌套滚动视图

<android.support.v4.widget.NestedScrollView 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> 


</android.support.v4.widget.NestedScrollView>

答案 1 :(得分:0)

用于嵌套滚动更好地使用NestedScrollView

  

当在另一个滚动视图中需要滚动视图时,使用名称建议的NestedScrollView。

<强> ScrollView vs NestedScrollView

  

另一件事使用RecyclerView

Listview内容

<强> RecyclerView vs. ListView

示例布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

 <LinearLayout
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:layout_height="wrap_content">

        // add here all your controlls


    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

并且不要忘记在setNestedScrollingEnabled()中设置RecyclerView属性,如下面的代码

  

如果此属性设置为true,则允许视图使用当前层次结构中的兼容父视图启动嵌套滚动操作。如果此视图未实现嵌套滚动,则此操作无效。在嵌套滚动正在进行时禁用嵌套滚动具有停止嵌套滚动的效果。

mRecyclerView.setNestedScrollingEnabled(false);