我对按钮可见性有一些问题
var number = 1
mBinding.llNext.setOnClickListener {
number += 5
mBinding.tvCount.text = number.toString()
}
mBinding.llBack.setOnClickListener {
number -= 5
if(number <= 0) {
mBinding.llBack.visibility = View.GONE
} else if (number >= 0) {
mBinding.llBack.visibility = View.VISIBLE
mBinding.tvCount.text = number.toString()
}
当数字为0时,按钮可见性消失,但当我点击下一步并且数字大于0时,该按钮无法显示。
可以使按钮可见的代码仅在您使其消失的按钮的OnClickListeneras中执行。因此您需要将其也包含在其他OnClickListeneras中。由于这将是两次相同的代码,因此最好将其提取为单独的功能,例如:
var number = 1
mBinding.llNext.setOnClickListener {
number += 5
handleClick()
}
mBinding.llBack.setOnClickListener {
number -= 5
handleClick()
}
fun handleClick() {
if(number <= 0) {
mBinding.llBack.visibility = View.GONE
} else if (number >= 0) {
mBinding.llBack.visibility = View.VISIBLE
}
mBinding.tvCount.text = number.toString()
}
奖励:
您可以使可见性检查更紧凑,如下所示:
mBinding.llBack.isVisible = number > 0