我想清除无障碍服务中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的ACTION_CLEAR_FOCUS进行具体处理。 View.java中动作的返回值就是!isFocused()。
如果您也拥有应用程序代码,则可以在其中单步执行代码,然后查看发生了什么。例如,如果应用程序确定焦点需要放在某个地方,然后将其放回EditText,则可以观察到行为。