如何解决在 Kotlin 中向下滚动一定数量后如何显示“Toast”
我想在我的应用程序中实现一个功能,当用户向下滚动回收视图时,它会显示 Toast/消息。例如,当用户向下滚动屏幕时,在他们通过大约 10 个项目后会弹出 Toast 说“点击主页按钮返回顶部”
我该怎么做?
解决方法
我认为最好基于滚动距离而不是最近出现在屏幕上的项目,因此应显示消息的阈值不取决于屏幕大小。由于关注点分离,最好将此行为排除在适配器之外。
这是您可以用来执行此行为的滚动侦听器。我认为代码是不言自明的。
open class OnScrolledDownListener(
private val context: Context,private val thresholdDp: Int,var resetOnReturnToTop: Boolean = true
): RecyclerView.OnScrollListener() {
private var eventFired = false
private var y = 0
open fun onScrolledDown() {}
open fun onScrolledBackToTop() {}
override fun onScrolled(recyclerView: RecyclerView,dx: Int,dy: Int) {
y += dy
val yDp = (y / context.resources.displayMetrics.density).roundToInt()
if (yDp >= thresholdDp && !eventFired) {
eventFired = true
onScrolledDown()
} else if (resetOnReturnToTop && yDp == 0 && eventFired) {
eventFired = false
onScrolledBackToTop()
}
}
}
您可以子类化和覆盖这两个事件,用于第一次向下滚动至少一定数量时(onScrolledDown
),以及当它滚动回顶部并重置自身时({{1 }}).
onScrolledBackToTop
,
我不知道这是否可行,但您可以尝试在您的适配器中执行此操作。喜欢
when (position) {
10 -> Toast.makeText().show
}
或使用 if 语句。 同样,我不确定它是否会起作用,但我认为是这样。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。