android隐藏输入法隐藏软键盘全解

一些项目中需要隐藏输入法,比如登录页面,登录成功后需要隐藏输入法,还有比如发布某个帖子,或者消息是

发布成功后需要隐藏输入法,再比如一个页面中既有EditText 又有Spinner等控件,当你输入完就去点击

Spinner控件是软键盘是没有被隐藏的,这是是影响用户体验的。

这里我写了一个静态的方法,有需要的可以放在Util包中,需要用的时候直接调用就ok

/**

* 隐藏输入法面板

*

* @param activity

*/

public static void hideInputMethod(Activity activity) {

if (null == activity) {

return;

}

if (null != activity.getCurrentFocus() && null != activity.getCurrentFocus().getWindowToken())

{

InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(),                               InputMethodManager.HIDE_NOT_ALWAYS);

}

}

参数是Activity,某个Activity中调用时,直接把这个Activity穿进去就行了,

例如,Util.hideInputMethod(MainActiviity.class);util是通用类名。

还有些情况下也需要隐藏输入法,比如说发布一写信息后,跳转到另一个界面时,在第二个界面居然还能看到输

入法,这样的用户体验太差了

那么问题来了,怎么解决这个问题呢,答案请看下面

在AndroidMainfirst.xml文件中,你注册的那个Activity中加入

android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"

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:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

时间: 2024-10-11 22:40:48

android隐藏输入法隐藏软键盘全解的相关文章

android 弹出的软键盘遮挡住EditText文本框的解决方案

1.android 弹出的软键盘遮挡住EditText文本框的解决方案:把Activit对应的布局文件filename.xml文件里的控件用比重设置布局.(例如:android:layout_weight="31")并且尽可能把高度设置成自适应的:android:layout_height="wrap_content",也就是没有设置高度的控件可压缩度的总和,如果比软键盘的高度要大,在EditText文本输入的时候,弹出的软键盘就不会遮挡住文本输入框.2.设置默认软

Android使用xml自定义软键盘效果(附源码)

Android使用xml自定义软键盘效果原理: 1,软键盘其实是个控件,使用android.inputmethodserver.KeyboardView类定义. 2,主布局中使用帧布局,当我们需要显示软键盘时设置为可见,不需要时设置为不可见. 3,编写xml文件,定义键盘内容.使用xml文件填充KeyBoardView布局 4,设置EditText的监听事件. 完成键盘开发. 上效果图: 1,源码研究android.inputmethodserver.KeyboardView: /* * Cop

拿来就用——一句代码隐藏EditText的软键盘

有时在我们开发的页面中含有EditText导致页面一打开就会弹出软键盘,下面代码隐藏软键盘 EditText myEdit=(EditText)findViewById(R.id.edit); myEdit.clearFocus(); 原因:让EditText失去焦点.

Android App监听软键盘按键的三种方式(转)

最近有类似需求,在csdn上刚好发现,粘贴过来,以防止忘记喽 前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面:在点击搜索框的时候,点击右下角的search符号键可以进行搜索:或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作. 效果图: function 1: 重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中

Android App监听软键盘按键的三种方式

前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"GO"按键加载url页面:在点击搜索框的时候,点击右下角的search符号键可以进行搜索:或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作. 效果图: function 1: 重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE

android中界面与软键盘的交互

一.在清单中配置 <activity android:windowSoftInputMode="stateVisible|adjustResize"/ > 各值的含义: [1]stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置 [2]stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 [3]stateHidden:用户选择activity时,软键盘

Android设置输入框和软键盘动态悬浮

1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_pare

Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式

actionNone : 回车键,按下后光标到下一行actionGo : Go,actionSearch : 放大镜actionSend : SendactionNext : NextactionDone : Done,确定/完成,隐藏软键盘,即使不是最后一个文本输入框 android:singleline="true" android:imeoptions="actionSearch" EditText.setOnEditorActionListener设置监听

android:windowSoftInputMode属性使用 软键盘

android:windowSoftInputMode="adjustResize|stateHidden" windowSoftInputMode属性设置值说明. <activity android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "