隐藏软键盘(隐藏输入法)的实现方法 原创
没用的喵叔
发布于 2021-4-24 12:17
浏览
4收藏
@toc
原理
向前或向后找到当前拥有焦点的控件,然后对其调用clearFocus()
就可以隐藏软键盘。
逻辑上应该没问题,我也简单测过了。大家使用过程序中,++如果没有效果,欢迎反馈给我++。我们一起进步。
代码
//clearFocus等同于隐藏软键盘
public static void clearFocus(Component component){
Component focusedComponent = findFocus(component, Component.FOCUS_NEXT);//尝试向后找焦点控件
if (focusedComponent != null) {
focusedComponent.clearFocus();
return;
}
focusedComponent = findFocus(component, Component.FOCUS_PREVIOUS);//尝试向前找焦点控件
if (focusedComponent != null) {
focusedComponent.clearFocus();
}
}
//找焦点控件
public static Component findFocus(Component component, int direction){
if (component.hasFocus()) {
return component;
}
Component focusableComponent = component;
int i = 99;
while (i-->0){
focusableComponent = focusableComponent.findNextFocusableComponent(direction);
if (focusableComponent != null) {
if (focusableComponent.hasFocus()) {
return focusableComponent;
}
} else {
break;
}
}
return null;
}
相关文章
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
标签
已于2021-7-8 09:15:13修改
赞
1
收藏 4
回复
相关推荐
大哥,那软键盘弹出后 输入框被遮挡有什么好的解决办法吗
这个问题我没有研究过。
输入框被遮挡 你可以把你的布局写成超出滚动的 那样 你的输入框永远不会被挡
1. 先设置getWindow().setInputPanelDisplayType(WindowManager.LayoutConfig.INPUT_ADJUST_PAN);
2. 布局文件用ScrollView包起来
3. 监听ScrollView的布局状态,其可视范围变小了,证明输入法弹出了。
4. 滚动ScrollView到当前焦点控件的下面。
亲测可行!
滚动的距离这样计算不太对。你自己调整一下
输入框被软键盘遮挡的解决办法
感谢!!!