我有一个锚定到折叠工具栏的 FAB,所以当工具栏折叠时,FAB 被隐藏,当我单击 FAB 时,图标切换正确,但是当我滚动并且 FAB 被隐藏后,当我尝试更改图标时它会消失,但是当我折叠并展开工具栏时,图标显示正确,我也尝试使
我尝试使用资源和可绘制对象更改图标,但我得到相同的结果
这是一个有问题的 GIF: https://media.giphy.com/media/1zKOxmWQ8IIpFgtvPM/giphy.gif
这就是我现在拥有的:
fun setFABState(isFav: Boolean, isSeeing: Boolean = false) {
launch(UI) {
fab.setImageDrawable(when {
isFav && isSeeing -> drawableStarHeart
isSeeing -> drawableHalfStar
isFav -> drawableHeartFull
else -> drawableHeartEmpty
})
fab.invalidate()
}
}
我能看到的唯一可能性是它可能最终出现在 else -> drawableHeartEmpty 中。请调试并查看两个标志(isFav,isSeeing(是否为假。
尝试从方法参数中提取分支语句。我之前对if-else
陈述有某种问题。
fun setFABState(isFav: Boolean, isSeeing: Boolean = false) {
launch(UI) {
val icon = when {
isFav && isSeeing -> drawableStarHeart
isSeeing -> drawableHalfStar
isFav -> drawableHeartFull
else -> drawableHeartEmpty
}
fab.setImageDrawable(icon)
}
}