我有一个监听器,可以通过动画监听并使重点项目变得更大。
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()触发器)时,元素会将其大小更改为正常 - 这没关系。但是当我导航到其他元素时,前一个元素会向外扩展两次。如果我通过点击某个项目触发了customFunction(),我怎么需要修改我的onFocusListener才能知道我不应该缩小两次。任何想法都受到欢迎。
答案 0 :(得分:0)
如果我理解你的问题,你可能需要尝试:itemView. setOnFocusChangeListener(null);
customFunction()