我希望在特定操作的可访问性服务中清除editText的输入焦点。
我得到了具有输入焦点的节点并尝试清除它但是performAction总是返回false:
AccessibilityNodeInfo root = getRootInActiveWindow();
AccessibilityNodeInfo focus = root.findFocus(AccessibilityNodeInfo.FOCUS_INPUT);
if(focus != null){
focus.getText(); //return the text in my input
focus.isFocusable(); //return true
focus.isFocused(); // return true
focus.getActions(); //Return the bitmask that contain the Action_clear_focus
boolean sucess = focus.performAction(AccessibilityNodeInfo.ACTION_CLEAR_FOCUS);
Log.v(TAG, "sucess = " + sucess); //Always return FALSE
}
为什么无法执行操作?
答案 0 :(得分:0)
如果从视图中清除焦点,视图框架将尝试将焦点放回屏幕上的第一个可聚焦元素。因此,如果屏幕上有一个可聚焦元素,如EditText,它将始终具有焦点 - 即使您调用clearFocus()。