是否可以将抽签动画添加到 Android 工具栏?
我试过这个:
override fun onCreateOptionsMenu(menu : Menu, inflater : MenuInflater) {
inflater.inflate(R.menu.menu_program_fragment, menu)
val menuFavorite = menu.findItem(R.id.menuSubscribe)
val lottieDrawable = LottieDrawable()
LottieComposition.Factory.fromAssetFileName(activity, "favorite.json", {
composition ->
lottieDrawable.setComposition(composition)
lottieDrawable.loop(true)
lottieDrawable.playAnimation()
lottieDrawable.invalidateSelf()
menuFavorite.icon = lottieDrawable
})
}
这导致一个IllegalStateException: You or your view must set a Drawable.Callback before setting the composition.
所以我添加了一个回调:
lottieDrawable.callback = object : Drawable.Callback {
override fun unscheduleDrawable(who: Drawable?, what: Runnable?) {
}
override fun invalidateDrawable(who: Drawable?) {
}
override fun scheduleDrawable(who: Drawable?, what: Runnable?, `when`: Long) {
}
}
这停止了异常的发生,但图标未在工具栏中绘制。
我该如何进行这项工作?
问题与 的内在高度有关
LottieDrawable
吗?应
Drawable.Callback
该做什么(如果有的话)?对
Fragment
/Activity
生命周期有什么影响吗?即我应该停止或清理破坏的东西吗?