处理android kotlin中的click事件:setOnClickListener只有在双击时才起作用

我在DialogFragment中有一个按钮可以返回到另一个活动。 但只有双击时才能使用。 我正在用尽想法。 在我的XML文件中,我已经尝试了以下(以不同的方式组合,但没有一个工作)

我的整个片段的XML文件

     

至于我的DialogFragment,我试图把我的setOnClickListener放在onViewCreated()方法里面,然后放在onStart()里面和onResume()方法里面。 它只在双击时才能工作。 我也有一个计时器,让对话在10秒后消失,然后把我带到我想要的活动,所以这不是一个问题,但我真的需要并想要解决它。 如果我将计时器设置为5秒或更低,当然,它给人的印象是按钮一次点击,但实际上没有。

 class PaymentDoneDialogFragment : DialogFragment() { private lateinit var mYesBtn: Button private lateinit var mActionYes: () -> Unit override fun onViewCreated(view: View, @Nullable savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) dialog.setCanceledOnTouchOutside(false) dialog.window.requestFeature(Window.FEATURE_NO_TITLE) dialog.window.setDimAmount(.85f) dialog.window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) dialog.setCancelable(false) dialog.setCanceledOnTouchOutside(false) dialog.window.decorView.systemUiVisibility = activity?.window!!.decorView.systemUiVisibility dialog.window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) mDialogTitle = view.find(R.id.tv_payment_done_title) if (mTitle != null) { mDialogTitle.text = mTitle } mYesBtn = view.find(R.id.rpv_btn_yes_payment_done) if (mYesTitle != null) { mYesBtn.text = mYesTitle } mYesBtn.setOnClickListener { if (mMessage == null) { (activity as PaymentActivity).nextScreensaverActivity() } else { mActionYes() } activity?.supportFragmentManager?.beginTransaction()?.remove(this)?.commit() } if (mMessage != null) { mMessageTextView = view.find(R.id.tv_payment_message) mMessageTextView?.text = mMessage mNoBtn = view.find(R.id.rpv_btn_no_payment_done) if (mNoTitle != null) mNoBtn.text = mNoTitle mNoBtn.visibility = View.VISIBLE mNoBtn.setOnClickListener { mActionNo() activity?.supportFragmentManager?.beginTransaction()?.remove(this)?.commit() } } } 

有没有人有一些线索?

您应该从LinearLayout子项中移除android:clickable="false"android:focusable="false"