u2g*_*les 7 android android-viewpager android-recyclerview android-coordinatorlayout
我有一个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" />
Run Code Online (Sandbox Code Playgroud)
我想激活/停用appbar在每个tab/recyclerview的基础上滚动而不是整个viewpager,也就是说,一个tab/recyclerview将使appbar滚动而另一个tab/recyclerview不会.
这个问题是当我删除
app:layout_behavior="@string/appbar_scrolling_view_behavior"
Run Code Online (Sandbox Code Playgroud)
从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" />
Run Code Online (Sandbox Code Playgroud)
并仅在我的第一个标签/ recyclerview上激活它.像这样 :
<android.support.v7.widget.RecyclerView
...
android:id="@+id/playlist1_rv"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
</android.support.v7.widget.RecyclerView>
Run Code Online (Sandbox Code Playgroud)
但我需要一个"@ string/appbar_desactivated_behavior"的课程.它存在吗?不是,怎么写呢?或者你考虑另一种策略?提前致谢.
如果您使用的是ViewPager,则需要在 上设置 appbar_scrolling_view_behaviorViewPager以获得正确的布局。
您所要做的就是关闭RecyclerView您不想滚动应用程序栏的嵌套滚动:
recyclerview.setNestedScrollingEnabled(false);
Run Code Online (Sandbox Code Playgroud)
请注意,您可能会遇到定位问题,并且可能必须在回收器视图的底部放置应用程序栏大小的边距。如果您的用户将应用栏与另一个回收器视图一起向上滚动,然后滑动到此回收器视图,则页面底部将会有一个空格。