空editText上的clearFocus()在Android中不起作用

Vij*_*jay 4 android android-edittext

我试图从空的editText中删除焦点但它无法正常工作.我打电话clearFocus()edittext,然后我在我的onFocusChanged()函数调用中设置了断点.

这是发生的事情: onFocusChanged()使用聚焦参数值调用4次false,true,false,true.

我认为onFocusChanged()必须只召唤一次(有焦点=假)

对不起,我的英语不好.任何帮助,将不胜感激.谢谢

Alo*_*pta 18

在xml中,制作父布局

  android:focusable="true"
  android:focusableInTouchMode="true"
Run Code Online (Sandbox Code Playgroud)

然后在编辑文本上调用 clearFocus 然后调用父请求焦点

 mFragmentBase.editText.clearFocus();
 mFragmentBase.parentLayout.requestFocus();
Run Code Online (Sandbox Code Playgroud)


pra*_*atZ 10

发生这种情况是因为您EditText是第一个可聚焦的视图.

从文档中,

注意:当View清除焦点时,框架会尝试从顶部开始关注第一个可聚焦视图.因此,如果此View是从顶部开始可以获得焦点的第一个视图,则将调用与清除焦点相关的所有回调,之后框架将关注此视图.

您可以尝试在EditText其上方设置虚拟可对焦视图以从中清除焦点.