android - 如何实现recyclerview的轮播效果
问题描述
我正在尝试像这样在 recyclerView 中实现类似轮播的效果。我找不到用于缩放和移动视图的正确功能。此外,到达 recyclerview 顶部的视图不能滚动出 recyclerview 的边缘,而是坚持它们
override fun scrollVerticallyBy(dy: Int, recycler: RecyclerView.Recycler?, state: RecyclerView.State?): Int {
for (i in 0 until childCount) {
val item = getChildAt(i)
val recyclerCenter = height / 2f
val distance = max(abs(recyclerCenter - getDecoratedTop(item!!) / 2f), recyclerCenter - getDecoratedTop(item) / 2f)
val ratio = (recyclerCenter - item.height / 2f - distance) / (recyclerCenter - item.height / 2f) + 1
item.translationZ = (ratio * 1000f)
item.alpha = ratio
item.translationY = -(ratio.pow(2)*10)
item.scaleX = ratio
item.scaleY = ratio
}
return super.scrollVerticallyBy(dy, recycler, state)
}
我已经尝试了一些解决方案,比如 carousellalayoutmanager,但是它们都缩放了所有视图,而不是在 recyclerview 的中心
解决方案
推荐阅读
- android-studio - 英特尔 HAXM 未安装在 vmware Mac Mojave 中,启用了 VT-X
- c++ - 声明和初始化结构类型的变量时出错
- google-chrome - 你能设置幻影驱动程序的下载路径吗?
- objective-c - 如何通过 NSArray 显示自定义 UICollectionViewCell?
- apache-spark - 列出 pyspark 中加载的所有其他 jars
- php - 与 ORACLE 连接
- sql - 在 django 中迁移模型后,我无法在管理面板中看到数据
- android - Kotlin:输入13个数字时将焦点设置到其他edittext字段
- python-3.x - 如何从列表中随机添加键并从另一个列表中添加值但在字典中的相同索引号上?
- javascript - Angular 7 中的可注射组件