7

我有一个包含 Recyclerview 的 2 个选项卡的 ViewPager。我正在使用支持库 22.2.0(AppCompat、Recycler 视图...)。我的 viewpager xml 最初是:

<android.support.v4.view.ViewPager
   android:id="@+id/viewPager"
   app:layout_behavior="@string/appbar_scrolling_view_behavior"
   android:layout_width="match_parent"
   android:layout_height="match_parent" />

我想在每个选项卡/recyclerview 的基础上而不是在整个 viewpager 的基础上激活/停用 appbar 滚动,也就是说,一个选项卡/recyclerview 将使 appbar 滚动,而另一个选项卡/recyclerview 不会。

这个问题是当我删除

app:layout_behavior="@string/appbar_scrolling_view_behavior"

从 viewpager 中,默认的 layout_behavior 应用于 viewpager,它仍然在 tab/recyclerview 上激活 appbar 滚动。

我的策略是停用 viewpager 中的 appbar 滚动,可能是这样的:

   <android.support.v4.view.ViewPager
            android:id="@+id/viewPager"
            app:layout_behavior="@string/appbar_desactivated_behavior"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

并仅在我的第一个选项卡/recyclerview 上激活它。像这样 :

<android.support.v7.widget.RecyclerView
    ...
    android:id="@+id/playlist1_rv"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
</android.support.v7.widget.RecyclerView>

但我需要一个“@string/appbar_desactivated_behavior”类。它存在吗?是不是,怎么写呢?还是您考虑另一种策略?提前致谢。

4

1 回答 1

0

如果您使用的是ViewPager,则需要在 上设置 appbar_scrolling_view_behavior 以ViewPager获得正确的布局。

您所要做的就是关闭RecyclerView您不想滚动应用栏的嵌套滚动:

        recyclerview.setNestedScrollingEnabled(false);

请注意,您可能会遇到定位问题,并且您可能必须在回收站视图的底部放置一个 appbar 大小的边距。如果您的用户使用另一个 recyclerview 向上滚动 appbar,然后滑动到这个 recyclerview,页面底部将有一个空间。

于 2016-10-14T20:38:20.370 回答