android - 如何使 Recycler View 在 appbar 捕捉时不滚动

标签 android android-coordinatorlayout appbar

我做了这样的捕捉应用栏:

enter image description here

请注意,当滚动条留在中间时(即标题是半可见的,然后应用栏会自动捕捉)

如果是 google play,这就是 snap 的样子:

enter image description here

现在,我希望 snap 像 google play 中的那样工作。也就是说,当捕捉发生时,只有应用栏应该捕捉并且回收器 View 不应该移动。如果该解决方案也支持 Lollipop 之前的设备就更好了。

谢谢!

最佳答案

查看我的图书馆 Retractable Toolbar

你必须在 build.gradle 上添加这个

compile 'it.michelelacorte.retractabletoolbar:library:1.0.0'

在你的 MainActivity.java 中使用 RecyclerView 和这个:

RetractableToolbarUtil.ShowHideToolbarOnScrollingListener showHideToolbarListener;
recyclerView.addOnScrollListener(showHideToolbarListener = new RetractableToolbarUtil.ShowHideToolbarOnScrollingListener(toolbar));

if (savedInstanceState != null) {
            showHideToolbarListener.onRestoreInstanceState((RetractableToolbarUtil.ShowHideToolbarOnScrollingListener.State) savedInstanceState
                    .getParcelable(RetractableToolbarUtil.ShowHideToolbarOnScrollingListener.SHOW_HIDE_TOOLBAR_LISTENER_STATE));
}

这是效果:

enter image description here

编辑:

从 23.1.0 设计库开始,您可以将 |snap 属性添加到您的 ToolBar 布局:

       <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|enterAlways|snap />

它应该或多或少是你正在寻找的。

关于android - 如何使 Recycler View 在 appbar 捕捉时不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33737589/

相关文章:

android - Rxjava2 查看回收器适配器中的点击次数

android - 删除 CoordinatorLayout- Android 中的额外顶部空间

android - 如何将 RecyclerView 放在 Toolbar 下方以及 TabLayout 和 ViewPager 上方还以自定义方式处理对滚动的响应?

android - linearLayoutmaneger.findLastCompletelyVisibleItemPosition 在 coordinatorLayout 中返回错误值

layout - 有没有办法在 SliverAppBar 的底部小部件中实现动态高度

android - Eclipse 中的多个标记错误(Android 应用程序)

java - 使用 SharedPreferences 仅 setText() 有效,但append() 无效

android - 在 Android 中使用 PdfJet 库在 Box 上绘制图像时遇到问题

Flutter - 使用 Material 在长按上更改应用栏

Flutter 应用栏布局 : action buttons in the same row with tab bar?