Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
空editText上的clearFocus()在Android中不起作用_Android_Android Edittext - Fatal编程技术网

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

空editText上的clearFocus()在Android中不起作用,android,android-edittext,Android,Android Edittext,我试图从空的editText中删除焦点,但它无法正常工作。 我在edittext上调用了clearFocus() 发生的情况如下: onFocusChanged()使用聚焦参数值调用了4次false、true、false、true 我认为onFocusChanged()只能调用一次(focused=false) 对不起,我的英语不好。任何帮助都将不胜感激。 谢谢这是因为您的EditText是第一个可聚焦的视图 从文档中 注意:当视图清除焦点时,框架将尝试提供焦点 从顶部到第一个可聚焦视图。因此,

我试图从空的editText中删除焦点,但它无法正常工作。 我在
edittext
上调用了
clearFocus()

发生的情况如下:
onFocusChanged()
使用聚焦参数值调用了4次
false、true、false、true

我认为
onFocusChanged()
只能调用一次(focused=false)

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

这是因为您的
EditText
是第一个可聚焦的视图

从文档中

注意:当视图清除焦点时,框架将尝试提供焦点 从顶部到第一个可聚焦视图。因此,如果该视图是 首先从顶部开始,可以集中精力,然后是与 将调用ClearingFocus,然后框架将给出 关注这个观点


您可以尝试在
EditText
上方设置一个虚拟的可聚焦视图,以从中清除焦点。

在xml中,创建父布局

  android:focusable="true"
  android:focusableInTouchMode="true"
然后调用clearFocus编辑文本,然后调用父请求焦点

 mFragmentBase.editText.clearFocus();
 mFragmentBase.parentLayout.requestFocus();

不要从EditText中清除焦点,而是在布局顶部创建一个空视图

<LinearLayout
    android:id="@+id/focusableLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:focusable="true"
    android:focusableInTouchMode="true"/>
最后,当你需要清除焦点时,只需打电话

focusableLayout.requestFocus()
hideKeyboard(currentActivity)

尝试欢迎使用堆栈溢出!请注意,您正在回答一个非常古老且已回答的问题。这是一本关于旅游的指南。
focusableLayout.requestFocus()
hideKeyboard(currentActivity)