Android系统的软键盘属性,我们可以在清单文件中的activity的android:windowSoftInputMode属性上设置,同时也可一再代码中动态设置,Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)。
windowSoftInputMode的属性有很多,不同属性效果也不一样,并且可以同时设置多个属性。下面一一列举出来:
stateUnspecified:软键盘的状态没有被指定,默认的设置。
stateHidden:用户进入该activity时,软键盘被隐藏。并非弹栈返回时。
stateAlwaysHidden:软键盘总是被隐藏,除非主动获取焦点,弹出
stateVisible:软键盘可见,与stateHidden相反
stateAlwaysVisible:软键盘可见,与stateAlwaysHidden相反
stateUnchanged:保持原来的状态不变
adjustUnspecified:默认设置,activity会选择一种合适的模式来给软键盘预留空间
adjustResize:activity总是被调整屏幕的大小来留出软键盘的空间
adjustPan:焦点不会被键盘覆盖,用户能总是看到输入内容的部分
手动调出、隐藏系统软键盘:
1.获取软键盘Manager
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
2.判断软键盘的状态
imm.isActive(); 返回值为boolean类型,true为显示,false为隐藏
3.显示软键盘
imm.showSoftInput(v, InputMethodManager.SHOW_FORCED);
4.隐藏软键盘
imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
5.隐藏或显示
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS)