我只所以写这个是因为我让这个问题让我头疼了好久才解决的。希望和我遇到同样的文题的热你可以提供一些帮助。

软键盘其实就是dialog。

1、隐藏软键盘

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

2、如果输入法在窗口上已经显示,则隐藏,反之则显示

InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

3、view为接受软键盘输入的视图,SHOW_FORCED表示强制显示

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);

imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘

4、调用隐藏系统默认的输入法

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); (WidgetSearchActivity是当前的Activity)

5、获取输入法打开的状态

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开

6 windowsoftinputmode属性的值解释

各值的含义:

(1)stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

(2)stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

(3)stateHidden:用户选择activity时,软键盘总是被隐藏

(4)stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

(5)stateVisible:软键盘通常是可见的

(6)stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

(7)adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

(8)adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

(9)adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

然后这些方法我都试过,还是没有解决我的问题,最后……

@Override

public boolean dispatchTouchEvent(MotionEvent ev) {

if (ev.getAction() == MotionEvent.ACTION_DOWN) {

View v = getCurrentFocus();

if (isShouldHideInput(v, ev)) {

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

if (imm != null) {

imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

}

}

return super.dispatchTouchEvent(ev);

}

// 必不可少,否则所有的组件都不会有TouchEvent了

if (getWindow().superDispatchTouchEvent(ev)) {

return true;

}

return onTouchEvent(ev);

}

public boolean isShouldHideInput(View v, MotionEvent event) {

if (v != null && (v instanceof EditText)) {

int[] leftTop = { 0, 0 };

//获取输入框当前的location位置

v.getLocationInWindow(leftTop);

int left = leftTop[0];

int top = leftTop[1];

int bottom = top + v.getHeight();

int right = left + v.getWidth();

if (event.getX() > left && event.getX() < right

&& event.getY() > top && event.getY() < bottom) {

// 点击的是输入框区域,保留点击EditText的事件

return false;

} else {

return true;

}

}

return false;

}

这个方法彻底解决我的问题,我也不知道原因

android中如何去掉键盘,总结:Android去掉软键盘(输入法)的方法相关推荐

  1. Android中根据dialog的展示与否控制软键盘的显示与隐藏

    好久没有写博客,今天一直在解决一个根据弹框的展示与否来控制软键盘是否展示的问题. 本文用于记录关键点. 关键点:1.该弹框包含一个输入框Edittext ,所以需要根据确定与取消按钮来控制软件盘的展示 ...

  2. Android禁用软键盘和取消禁用软键盘

    最近参加了一个项目,主要需要适应带有物理键盘的小屏幕机型,因为屏幕小的原因,所以不能用软件盘,而需要使用物理键盘来进行输入操作. 找了很久,终于发现了相对适当的方法: 在BaseActivity里禁用 ...

  3. android 代码设置 键盘适应_Android自适应软键盘的Dialog以及监听软键盘弹起

    最近项目中遇到一个需求:新手引导.跟一般的新手引导没有什么太大区别,思路都是搞一个带阴影的遮罩层,然后在上边儿给一些提示性的文字,由于需求中有些特殊的地方,所以我用了一个全屏的dialog(而且,di ...

  4. android 键盘遮盖输入框_Android软键盘挡住输入框的终极解决方案

    前言 开发做得久了,总免不了会遇到各种坑. 而在Android开发的路上,『软键盘挡住了输入框』这个坑,可谓是一个旷日持久的巨坑--来来来,我们慢慢看. 入门篇 最基本的情况,如图所示:在页面底部有一 ...

  5. 关于 android 中 edittext 特殊字符过滤和字符长度限制的最优方法

    关于 android 中 edittext 特殊字符过滤和字符长度限制的最优方法 1985 T.于星期四, 07/03/2013 - 20:36提交 在android开发中,经常会碰到edittext ...

  6. android 调出键盘表情_android 表情,软键盘冲突解决方案(仿微博等SNS应用)

    之前总想搞一下这个模块,可是由于忙碌总是推迟,现在就把这块好好的弥补过来,下面是我实现的思路.本人才疏学浅,还望大家不要见笑. 首先我们还是先看写示例: 上面应用应该不用我过多介绍,下面我简单介绍下我 ...

  7. android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法

    今天实现listview的下拉刷新和上拉加载的时候,遇到了一个问题,*就是说需要根据listview中滑动的位置来进行下拉刷新和上拉加载.* 具体点,只有当我的listview滑动到最顶部的时候,这时 ...

  8. [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决?

    [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决? window.addEventListener("resize", function () {if ...

  9. Android中解析读取复杂word,excel,ppt等的方法

    前段时间在尝试做一个Android里的万能播放器,能播放各种格式的软件,其中就涉及到了最常用的office软件.查阅了下资料,发现Android中最传统的直接解析读取word,excel的方法主要用了 ...

  10. 软件android_id,Android中@id和@+id及@android:id的区别介绍

    前言 昨天突然有新来的同事问我这个@id 和@+id 的区别 ,为什么 我们的项目都是@id 自己新增的ui 使用的@+id 这里说下我的简单的回复项目是维护的之前的是为了统一管理使用了@id  方便 ...

最新文章

  1. React:入门计数器
  2. 【译】Beyond Snarks: Some Blockchain Privacy Protocols You Need to Know About
  3. C# 网络编程之使用Socket类Send、Receive方法的同步通讯
  4. 编写并运行windows服务
  5. 掘金-Markdown 编辑器使用手册
  6. 数据导入导出、备份恢复
  7. 三坐标测量圆直径_基于三坐标测量机的渐开线齿轮,测量方法
  8. 实时音频混音技术在视频直播中的实践应用
  9. 一款可以安利的MarkDown编辑器
  10. 多媒体交互应用基础(7)
  11. linux mint 检测网卡驱动,使用linux mint 安装无线网卡驱动
  12. 【Css/Html】网页Css默认设计样式载入模板代码body.css
  13. Django 4.x Caches 缓存使用示例和配置方法
  14. echarts封装 - 续2
  15. 文章阅读总结:视频理解论文串讲(Li Mu+ Yi zhu)
  16. dac单缓冲方式C语言设计,课程设计基于DAC0832单缓冲工作波形发生器.doc
  17. 哨兵2a 波段组合_一种针对哨兵2A影像的建筑物阴影提取处理方法与流程
  18. 见缝插针游戏制作笔记
  19. 16_开发工具IntelliJ IDEA
  20. 百度地图api离线开发(示例源代码)

热门文章

  1. 安卓开发——Androidstudio设置网络代理
  2. 会声会影制作转场特效及视频转场的应用
  3. python使用OpenCV-Python结合百度图像识别api实现图片中的文字识别
  4. 【电力拖动自动控制系统】感应/异步电机动态模型完全手把手推导
  5. 编译原理 实验2《预测分析法设计与实现》
  6. C语言数组指针和指向数组的指针变量—数组名作函数参数.doc
  7. Toolchain的安装与验证(有图 ,超详细)
  8. 数据科学,会如何向我们撒谎?
  9. matlab2012教程答案,MATLAB教程2012a习题解答1-7章完整版-张志涌编-北航.doc
  10. nod32Android版用户名及密码,最新nod32官方升级id和账号用户名密码