android - Android ViewPager Fade 仅在向左滑动时有效
问题描述
我正在开发一个应用程序,它的主视图带有ViewPager
. 这可以通过向左或向右滑动来循环不同的游戏。我已经制作了fade-in
文件fade-out
XML
以在背景中淡化 ImageView。但是,这仅在我向左滑动时按预期工作,而不是相反。这怎么可能发生?
onPageScrolled
这是我进行淡入淡出的 ViewPager方法。请记住,它在向左滑动时有效。
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
this.position = position
if(position >= (adapter.count - 1) && position >= (backgrounds.size - 1)){
this.position = backgrounds.size - 1
}
bottomBG.setBackgroundResource(previousBG)
val fadeOut: Animation = AnimationUtils.loadAnimation(context, R.anim.fade_out)
bg.startAnimation(fadeOut)
bg.setBackgroundResource(backgrounds[this.position])
val fadeIn: Animation = AnimationUtils.loadAnimation(context, R.anim.fade_in)
bg.startAnimation(fadeIn)
previousBG = backgrounds[this.position]
}
代码的简短解释:我最初检查位置是否在背景列表的末尾并将其设置在那里。这是一些旧的逻辑,如果我来到列表的末尾,它会有所不同。
bottomBG
位于淡入淡出ImageView
下方,ImageView
因为它以一种奇怪的方式淡出。
动画线条应该是不言自明的。
我设置了backgroundResource´ to the background located at the
位置`。
最后,我将 设置previousBG
为当前背景,以便它正确淡出bottomBG
ImageView
.
解决方案
推荐阅读
- c++ - 如何键入用于 const 对象的自定义 io 操纵器?
- python - 如何在 Flask 的页面上显示我的 html 文件
- snakeyaml - 在 Thorntail 中访问 yaml 外部文件
- c# - 带有建议的 NSTextField 显示在下拉列表中
- c# - C# 更新 CSV 单元格
- javascript - 为什么这不更新我的状态,它应该?反应还原
- node.js - 仅当密钥存在 firebase 云功能时才更新
- c - C 案例编号+1:需要括号吗?
- jquery - 用户在新浏览器选项卡中输入 PDF 文件的 HTML 表单
- android - VideoPlayer 小部件不断给出 NullPointerException 调用空对象引用上的虚拟方法