使用协调布局与回收视图

3

如何让RecyclerView跟随ViewPager一起移动? RecyclerView没有跟随ViewPager一起移动。我使用了一个CoordinatorLayout和一个CollapsingToolbarLayout,但RecyclerView仍然独立滚动,而不是跟随ViewPager一起滚动。ViewPager只在特定区域内折叠。

 <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true">
        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp"
            android:fitsSystemWindows="true">
            <android.support.v4.view.ViewPager
                android:layout_width="match_parent"
                android:scrollbars="vertical"
                android:layout_height="150dp"
                android:fitsSystemWindows="true"
                app:layout_collapseMode="parallax"
                android:id="@+id/slider_pager">
            </android.support.v4.view.ViewPager>
        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

        <android.support.v4.widget.NestedScrollView
            android:id="@+id/scroll"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clipToPadding="false"
            android:fillViewport="true"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">
            <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scrollbars="none"
                android:id="@+id/list_hotels"
                android:background="@color/back1">
            </android.support.v7.widget.RecyclerView>
        </android.support.v4.widget.NestedScrollView>
    </android.support.design.widget.CoordinatorLayout>

请帮我一起移动它们的位置,上下方向。

1个回答

3
应用栏/工具栏部分看起来没问题。但是你将一个RecyclerView包装在一个NestedScrollView中,这是不必要的。
完全删除NestedScrollView并像下面这样声明RecyclerView:
        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scrollbars="none"
            android:id="@+id/list_hotels"
            android:background="@color/back1"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

如果您仍然遇到问题,请更新您的问题并附上新的XML布局。

现在两者一起运行,但是在向上滑动时,它会停在recycler view的第一个项目上,即在完全向上滚动时,视图会自动停在recycler view的第一个元素上,进一步滚动后,viewpager出现。我该怎么做才能保持平稳的流程,使viewpager自动出现? - Rohit Mishra
如果我理解你的意思正确的话,你想要在开始向下滑动时立即出现 ViewPager。请将 CollapsingToolbarLayout 上的 app:layout_scrollFlags="scroll|exitUntilCollapsed" 更改为 app:layout_scrollFlags="scroll|enterAlways" - kris larson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接