android SetOnClickListener点击两次才响应

77 阅读1分钟

问题:

界面多个EditText,需要判断光标焦点在哪里,用了view.SetOnClickListener事件,想给每个EditText设置点击监听,但是,有时候从别的EditText view切换回来,SetOnClickListener得点2次才执行。

解决方法:

改额头: 使用view的setOnTouchListener

binding?.editEpcNew?.setOnTouchListener { v, event ->
    viewModel.currentFocus.set(ReplaceChipViewModel.FOCUS_NEW_EPC)
    when (event.action) {
        MotionEvent.ACTION_UP -> {
            binding?.editEpcNew?.isFocusable = true
            binding?.editEpcNew?.isFocusableInTouchMode = true
            binding?.editEpcNew?.isCursorVisible = true
            binding?.editEpcNew?.requestFocus()
            viewModel.showKeyboardBarcode.set(false)
            viewModel.showKeyboardEpc.set(false)
        }
    }
    false
}