问题标签 [pagersnaphelper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
590 浏览

android - 带有偏移量的 RecyclerView 和 PagerSnapHelper 没有正确裁剪

RecyclerViews有两个,ItemDecoration每个两个,为第一个和最后一个项目添加一个固定的偏移量。

StartOffsetItemDecoration.kt

EndOffsetItemDecoration.kt

我还在PagerSnapHelper两者上都添加了一个,RecyclerViews但它们似乎不适用于给定的偏移量。我想我可能缺少一些配置,或者可能PageSnapHelper知道偏移量,以便它可以计算第一个和最后一个元素的正确捕捉。

有人能够使 PagerSnapHelper 与包含偏移量的 RecyclerView 一起工作吗?LinearSnapHelper 似乎比 PagerSnapHelper 工作得更好,但仍然无法捕捉第一个和最后一个项目。

谢谢!

更新

使两个列表高度都达到 500dp,但没有任何改变。

在此处输入图像描述

更新 2

在第一个和最后一个位置添加了一个空项目,现在它工作得很好。在计算尺寸的位置时,只需要记住这些项目。

在此处输入图像描述

0 投票
3 回答
5175 浏览

android - 如何在水平 RecyclerView 中捕捉到 LinearSnapHelper 的特定位置?

如何在水平 RecyclerView 中捕捉到 LinearSnapHelper() 的特定位置?RecyclerView 有一个 scrolltoposition 函数,它滚动到该位置,但没有将其保持在此 snaphelper 的中心。

我正在寻找类似下图的东西。所以当我设置到特定位置时,它会保持在中心。我没有找到与SnapHelper的选择位置相关的任何内容

我找到了这个,但这对我没有帮助。任何帮助,将不胜感激。

在此处输入图像描述

0 投票
0 回答
217 浏览

android - 如何使用 Recycler 视图提供简短的(质押)动画?

我正在使用带有 SnapHelper 的 Recycler 视图,并希望在下面的链接中显示动画,但是其他所有教程都使用 viewpager 实现了这种效果,如何使用 Recycler 视图提供这个动画?

这就是我想要实现的演示动画

0 投票
2 回答
2065 浏览

android - 使用 PagerSnapHelper 在 RecyclerView 中添加空间

我正在寻找一种使用 aRecyclerView和 . 在我的项目之间添加空格的方法PagerSnapHelper

为了证明我的意思是一个 gif:

正如您在上面看到的两个图像之间有一点黑色空间。但是这些空间只能在 scroll 上使用。如果scrollStateSCROLL_STATE_IDLE图像中,则居中对齐并且是“全宽”。

这就是我想要达到的目标。

我的想法是为我添加一个新的“占位符”viewTypeRecyclerView.Adapter并自定义PagerSnapHelper“跳过”占位符viewTypeView(也可以每秒跳过)。但不知何故,这不起作用。我无法更改PagerSnaperHelper(或SnapHelper带有大量重复代码的PagerSnapHelper)以按我的意愿工作。更进一步,在实施它时感觉有些不对劲。感觉就像“这不是应该的方式”。

那么 - 有什么建议或想法可以解决这个问题吗?我完全愿意接受所有建议。

Disclamer:
我知道我可以使用旧ViewPager的。但出于特殊原因,我要求实现RecyclerView. 所以请不要建议在ViewPager这里使用,谢谢。

0 投票
1 回答
2965 浏览

android - PagerSnapHelper 中的 From-To Page Changed 监听器

我正在使用PagerSnapHelper水平RecyclerView来实现类似视图寻呼机的行为。

final PagerSnapHelper pagerSnapHelper = new PagerSnapHelper(); pagerSnapHelper.attachToRecyclerView(recyclerView);

它工作得很好,但我希望能够在用户在任一方向更改页面时获得回调。所以像onSwipeLeft/onSwipeRight回调。

我尝试使用findTargetSnapPositionin PagerSnapHelper,但这只给了我targetIndex而不是当前索引。我尝试过这样的事情,但它并不是一直都有效。

有没有更好的方法来实现这个总是有效的?谢谢!

0 投票
1 回答
141 浏览

android - 如何在 RecyclerView 中为每个 CardView 单独更改 ImageButton 的可绘制对象?

我想使用 CardView 更改 RecyclerView 中 ImageButton 的可绘制对象,具体取决于用户滚动 RecyclerView(水平,附加 SnapHelper)时 CardView 中对象的条件。

ImageButton 在 Main Activity 布局中,我将它作为参数传递给我的自定义适配器。在onBindViewHolder方法中,我检查每个绘制的 CardView 的对象的状态,如果状态为“1”,我想放置名为“确认”的可绘制对象,如果状态为“0”,则可绘制对象在 ImageButton 上应为“取消”。

这是我的主要活动布局:

这是为 CustomAdapter 中的每个 CardView 扩展的布局:

这是更清楚地解释它的图像: 在此处输入图像描述

因此,当用户滚动 RecyclerView 时,我想更改 ImageButton 的可绘制对象 - 取决于用户向左或向右滚动时每个 CardView 的状态。

我已经设法部分解决了这个问题,但是当我向右滚动然后滚动回以前的 CardViews 时,drawable 没有改变或改变完全错误。

编辑:这是我的 onBindViewHolder 方法:

0 投票
2 回答
2990 浏览

android - 带有 3 x 3 项目的 RecyclerView 水平滚动

在我的项目中,我需要使用左右箭头在水平滚动视图上以 3 x 3 显示项目列表。如果我单击右箭头,则下一个 3 项应显示如下图所示

在此处输入图像描述

我很困惑,我需要使用 ViewPager 或 RecyclerView 与 SnapHelper 或 PagerSnapHelper。关于如何实现它还有其他建议吗

0 投票
1 回答
592 浏览

android - 第一项和最后一项的 SnapHelper 问题

我正在使用 Recyclerview 和 PageSnapHelper 来创建图像轮播。

第一项 - 不居中在此处输入图像描述

第二项居中

第一个项目不居中,后续项目应该居中,我使用项目装饰器实现了这一点。RecyclerView 在嵌套的滚动视图中。

问题: 滚动不流畅,我已经覆盖了 findTargetSnapPosition,第一次滚动时滚动了 2 个项目。

0 投票
1 回答
358 浏览

android - RecyclerView中捕捉SmoothScroll的动画事件[Android]

我有一个附加了 PageSnapHelper 的 GridLayout RecyclerView,它基本上就像一个垂直线性 RecyclerView (我继承了代码,不知道为什么这样做)。目标是突出显示当前在视图中居中的项目。滚动是从由两个菜单项驱动的代码完成的,以模拟从遥控器前进和后退。滚动视图工作正常。问题似乎是,当我收听滚动事件结束时,会出现动画,这会弄乱我的代码以在项目周围绘制突出显示。这是我用来根据菜单项滚动视图的代码:

当应用程序第一次启动并且我按下前进按钮时,第一项突出显示就好了: 在此处输入图像描述

在下一个选择中,参与滚动事件是我遇到问题的地方:在此处输入图像描述

我期望发生的是,当滚动事件结束时,该项目处于其中心位置。根据我所看到的,我认为还有一些动画事件仍在发生,我应该寻找完成。我的突出显示代码依赖于有问题的视图位于其预期位置。我是 android 新手,我对 RecyclerView 动画的搜索将我带到了 ItemAnimator。但是阅读文档我不确定这是否是我正在寻找的。有任何想法吗?

0 投票
2 回答
156 浏览

android - 轻推分页回收器视图以提示下一页而不切换

我正在使用带有 LinearLayoutManager 和 PagerSnapHelper 的水平回收器视图,并且每个视图持有者/页面都是全屏的并捕捉到窗口,因此一旦解决,只有一个页面可以查看。像大多数全屏滑动标签一样。

在当前页面之后插入新页面时,我想暂时显示/提示它的存在而不捕捉/滚动到它,即这样用户知道他们打开了一个新页面,如果他们想查看它而不强迫他们实际查看它就在那里查看它。

因此,如果您开始稍微拖动手指以暴露下一页,然后再松开并让它重新回到起始页,这将是相同的效果。

我怎样才能做到这一点?谢谢