Android 输入法

本文详细介绍了AndroidManifest中关于Activity的软键盘控制设置方法,包括stateUnchanged、stateAlwaysHidden等状态设置,以及adjustPan、adjustResize等窗口调整方式。同时提供了软键盘显示与隐藏的代码实现,并解释了不同显示模式的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. AndroidMainfest中对Activity进行的相关设置
android:windowSoftInputMode="stateUnchanged|adjustPan"

stateUnchanged:软键盘的控制状态
stateUnspecified:(默认采取的状态)未指定的状态,系统将选择适当的中泰或依赖theme中的设置
stateUnchanged:保持原先的状态,无论是显示还是隐藏,例如进入新的activity时,保持在原来avtivity的状态
stateHidden:当用户主动进入该界面时隐藏键盘
stateAlwaysHidden:永远隐藏
stateVisible:正常情况下显示键盘
stateAlwaysShow:当用户主动进入该界面时显示键盘

adjustPan:活动主窗口的调整
adjustUnspecified:(默认采取的状态)系统将任意选取一些的选项,所选择的模式取决于视图中是否含有可以滚动的控件,如果有则视图会调整大小,让整个布局处于可见状态,不被遮盖()
adjustResize:视图将调整大小为输入法提供空间,即整个视图将会显示
adjustPan:输入法会遮盖视图,但是输入的位置不会被遮盖

  1. 输入法的显示与隐藏

显示:

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        inputMethodManager.showSoftInput(mEditText, InputMethodManager.SHOW_FORCED);

showSoftInput 第二个参数:
InputMethodManager.SHOW_FORCED
强制显示:此方法调出输入法后只能强制手动关闭或者在hideSoftInputFromWindow时第二个参数设置为“0”

 InputMethodManager.SHOW_IMPLICIT
 隐士显示:这种情况下输入法可能不会显示出来

隐藏

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus().getApplicationWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);

hideSoftInputFromWindow的第二个参数:
HIDE_IMPLICIT_ONLY:
只用当键盘显示的方式为隐士调出的才生效(如采用SHOW_FORCED或者用户点击输入框显示的键盘调用此方法不生效)
HIDE_NOT_ALWAYS:
键盘一般会被隐藏除非被强制调出或者为原生(此时可以采用强制隐藏,即把第二个参数设为“0”)

  1. 监听输入法显示和隐藏的方式参考:
    http://winuxxan.blog.51cto.com/2779763/522810
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值