java防止安卓键盘造成延迟
我试图使用滑动手势来完成一个片段,如果片段显示键盘,键盘将被隐藏。以下是一个示例:
public void finishFragment() {
View focus = getCurrentFocus();
InputMethodManager imm = null;
if (focus != null) {
imm = (InputMethodManager) focus.getContext().
getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
imm.hideSoftInputFromWindow(focus.getWindowToken(), 0);
}
}
if (getFragmentManager().getBackStackEntryCount() > 1) {
getFragmentManager().popBackStack();
}
}
不幸的是,由于我沿着片段堆栈调用了一个服务,该服务挂起了UI显示,因此给了它一个滞后的外观。有人知道我如何在不调用服务的情况下隐藏键盘,或者我应该调用Async
进程吗?更妙的是,有人知道onBackPressed()
如何移除键盘吗
# 1 楼答案
在Android上,只有两种方式可以控制键盘:
所以要回答你的问题:“有人知道我如何在不呼叫服务的情况下隐藏键盘吗”?您可以在AndroidManifest中执行以下操作,其中ActivityX是您希望具有这种行为的活动
AndroidManifest。xml:
这将用于最初隐藏ActivityX的键盘,但我不确定这是否会在滑动以完成片段时提供所需的行为/缺少滞后性。还可以尝试将“stateHidden”更改为“stateAllwayshidden”或“stateUnchanged”。如果您不知道,请检查这些功能
另一种方法是:与其像你正在做的那样检查焦点并以编程方式获取键盘,为什么不直接完成()管理你希望结束的片段的活动呢?如果键盘打开,这也会隐藏键盘
希望这有帮助