您的位置:首页 > 文旅 > 美景 > Android中focusableInTouchMode会导致第一次点击事件失效

Android中focusableInTouchMode会导致第一次点击事件失效

2024/10/5 18:29:54 来源:https://blog.csdn.net/yztbydh/article/details/139350989  浏览:    关键词:Android中focusableInTouchMode会导致第一次点击事件失效

我们很多时候会对某些View设置点击事件,但是,当对这个View同时设置了focusableInTouchMode=true时,第一次点击事件会被消费为为此View获取焦点。

<Viewandroid:id="@+id/v_click"android:layout_width="match_parent"android:layout_height="200dp"android:focusableInTouchMode="true"android:background="@color/cardview_dark_background"/>

创建一个View,并同时指定了 android:focusableInTouchMode="true",在Activity代码中对View设置点击事件。

var count = 0findViewById<View>(R.id.v_click)?.let {it.setOnFocusChangeListener { v, hasFocus -> Log.e("V_CLICK", "hasFocus  ${hasFocus}") }it.setOnClickListener {Log.e("V_CLICK", "click ${++count}")}}

发现第一次点击,LogCat显示:

V_CLICK  E  hasFocus  true

再次点击,才出现点击事件的Log:

V_CLICK  E  click 1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com