折叠工具栏上的 FAB 在行为隐藏后更改时不显示图标



我有一个锚定到折叠工具栏的 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)
}
}

最新更新