提问者:小点点

递增/递减可见性按钮静态编程语言


我对按钮可见性有一些问题

    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时,该按钮无法显示。


共1个答案

匿名用户

可以使按钮可见的代码仅在您使其消失的按钮的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