0
我有一個偵聽器,偵聽並使動畫聚焦的項目變大一點。自定義動畫觸發兩次
private fun focus() {
itemView?.setOnFocusChangeListener { _, hasFocus ->
if (hasFocus) {
val anim : Animation = AnimationUtils.loadAnimation(itemView.context, R.anim.scale_in)
itemView.startAnimation(anim)
anim.fillAfter = true
} else {
val anim : Animation = AnimationUtils.loadAnimation(itemView.context, R.anim.scale_out)
itemView.startAnimation(anim)
anim.fillAfter = true
}
}
}
除此之外監聽我也做了自定義的功能,即聚焦時,項目被點擊,它實際上改變大小恢復正常
fun customFunction(): Unit = with(itemView) {
val anim : Animation = AnimationUtils.loadAnimation(itemView.context, R.anim.scale_out)
itemView.startAnimation(anim)
anim.fillAfter = true
}
問題:focus()
和customFunction()
功能工作正常的。問題是,當我點擊焦點元素(customFunction()觸發器)時,元素將其大小更改爲正常 - 這是可以的。但是,當我導航到其他元素的時候,前一個擴展了兩次。我如何需要修改我的onFocusListener,以便知道如果我通過單擊某個項目觸發customFunction(),則不應該擴展兩次。任何想法都歡迎。
這不起作用 – JoshuaMad