首页 > 代码库 > android中界面与软键盘的交互

android中界面与软键盘的交互

一、在清单中配置

  <activity android:windowSoftInputMode="stateVisible|adjustResize"/ >

各值的含义:

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

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

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

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

【5】stateVisible:软键盘通常是可见的

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

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

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

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

 

二、在代码中配置

方法1:

在onCreate()里,this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

 

 

方法2:

//隐藏输入法

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEdit.getWindowToken(), 0); //myEdit是需要禁止自动弹出软键盘的EditText对

 

 

方法3:

// 隐藏输入法
InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

 

注:

toggleSoftInput(是否显示,是否隐藏);

这个方法可以转换软件输入法在窗体中的显示状态。如果输入法当前是显示状态,那么该方法设置输入法隐藏。如果输入法当前是隐藏状态,则该方法设置输入法显示。

 

android中界面与软键盘的交互