微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android – 根据每个viewpager recyclelerview激活appbar滚动

我有一个ViewPager,其中包含2个包含Recyclerview的选项卡.
我正在使用支持库22.2.0(AppCompat,Recycler view …).
我的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" />

我想激活/停用appbar在每个tab / recyclerview的基础上滚动,而不是在整个viewpager的基础上滚动,也就是说,
一个选项卡/ recyclerview将使appbar滚动,而另一个tab / 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”的课程.
它存在吗?不是,怎么写呢?或者你考虑另一种策略?
提前致谢.

解决方法

如果您使用的是ViewPager,则需要在ViewPager上设置appbar_scrolling_view_behavior以进行正确的布局.

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

recyclerview.setnestedScrollingEnabled(false);

请注意,您可能会遇到定位问题,并且可能需要在recyclerview的底部放置一个appbar大小的边距.如果您的用户使用其他Recyclerview向上滚动appbar然后滑动到此recyclerview,则页面底部会有一个空格.

原文地址:https://www.jb51.cc/android/315074.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐