Android 如何设置 ImageButton 辅助功能焦点
Android how to set ImageButton accessibility focus
我试图在我的应用程序上应用有关对讲的辅助功能。
我想在用户选择 EditText
时将焦点更改为 ImageButton
(自定义键盘布局)。
这是我的代码摘要。
edittext.setAccessibilityDelegate(new View.AccessibilityDelegate() {
@Override
public void sendAccessibilityEvent(View host, int eventType) {
if (eventType == AccessibilityEvent.TYPE_VIEW_FOCUSED || eventType == AccessibilityEvent.TYPE_VIEW_CLICKED) {
btn.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
}
}
});
我设置了关于 TYPE_VIEW_CLICKED
和 TYPE_VIEW_FOCUSED
的条件,因为当用户双击 EditText
时,一个状态可能已经被聚焦了。
但是,如果 eventType 是 TYPE_VIEW_CLICKED
,按钮不仅是可访问性焦点,还会引发按钮点击事件。
我只想设置焦点。
我该如何解决这个问题?
选项 1
在 onCreate()
下
editText.requestFocus();
选项 2 - 选项 1 的扩展
if(editText.requestFocus()) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
选项 3 - 如果选项 1 和 2 都不起作用
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
我试图在我的应用程序上应用有关对讲的辅助功能。
我想在用户选择 EditText
时将焦点更改为 ImageButton
(自定义键盘布局)。
这是我的代码摘要。
edittext.setAccessibilityDelegate(new View.AccessibilityDelegate() {
@Override
public void sendAccessibilityEvent(View host, int eventType) {
if (eventType == AccessibilityEvent.TYPE_VIEW_FOCUSED || eventType == AccessibilityEvent.TYPE_VIEW_CLICKED) {
btn.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
}
}
});
我设置了关于 TYPE_VIEW_CLICKED
和 TYPE_VIEW_FOCUSED
的条件,因为当用户双击 EditText
时,一个状态可能已经被聚焦了。
但是,如果 eventType 是 TYPE_VIEW_CLICKED
,按钮不仅是可访问性焦点,还会引发按钮点击事件。
我只想设置焦点。
我该如何解决这个问题?
选项 1
在 onCreate()
editText.requestFocus();
选项 2 - 选项 1 的扩展
if(editText.requestFocus()) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
选项 3 - 如果选项 1 和 2 都不起作用
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);