android中怎么用代码实现 隐藏 软键盘

 我来答
greystar_cn
2016-11-15 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
在Android开发中,经常会有一个需求,做完某项操作后,隐藏键盘,也即让Android中的软键盘不显示。今天,和大家分享如何利用代码来实现对Android的软件盘的隐藏、显示的操作,并给出Demo参考。
1.切换显示软键盘
这个效果是:如果有软键盘,那么隐藏它;反之,把它显示出来。代码方法如下:
//1.得到InputMethodManager对象
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//2.调用toggleSoftInput方法,实现切换显示软键盘的功能。
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

2.显示软键盘
//1.得到InputMethodManager对象
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//2.调用showSoftInput方法显示软键盘,其中view为聚焦的view组件
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);

3.隐藏软键盘
//1.得到InputMethodManager对象
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//2.调用hideSoftInputFromWindow方法隐藏软键盘
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘

4.获取输入法打开的状态
//1.得到InputMethodManager对象
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
//获取状态信息
boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6410b26
2018-06-05
知道答主
回答量:6
采纳率:0%
帮助的人:6283
展开全部
/**
* 隐藏软键盘
* @param view 软键盘属于哪个View 的。activity可直接传递null
*/
protected void hideKeyBoard(View view) {
if (getWindow().getAttributes().softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) {
InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
if (view != null){
view = getCurrentFocus();
}
if (view != null) {
inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式