我需要使用平滑的淡入淡出功能更改工具栏中的菜单项可绘制图标动作,因此我使用TransitionDrawable实现了一个简单的功能
private fun MenuItem.transIconTo(newIcon: Drawable, duration: Int) {
val crossfader = TransitionDrawable(arrayOf(this.icon, newIcon))
this.icon = crossfader
crossfader.startTransition(duration)
}
toolbar.menu.findItem(R.id.action_edit)?.transIconTo(ContextCompat.getDrawable(baseContext, R.drawable.ic_edit_grad_1)!!, DRAWABLE_GRAD_TRANS_DURATION)
它可以在果冻豆和棉花糖上完美使用,但在牛轧糖和奥利奥上则无法使用! (我没有测试其他版本)。它会立即更改图标,而不会降低duration
的值。
我建立具有以下目标的应用程序:
compileSdkVersion 28
minSdkVersion 16
targetSdkVersion 28
依赖项支持版本
28.0.0-rc01
所以我不知道问题是我的编程错误还是某些平台依赖冲突。有人有什么主意吗?您可以提出有效的替代方法吗?
P.S .:将自定义视图用作操作视图并不能解决问题。