时间:2022-10-25 09:31:52 | 栏目:Android代码 | 点击:次
前言:
在开发中经常会遇到这样的问题,进入一个含Edittext的Activity后总是会自动弹出软件盘。但是有时候我们又不想让它弹出,因为影响美观,而且用户可能也会反感。最好的做法是刚进入时不让弹出,在用户输入的时候才让弹出,把主动权交个用户是对用户最大的尊重。
代码:
<activity android:name=".MainActivity" android:windowSoftInputMode="stateHidden"/>
发现用stateAlwaysHidden也可以禁止弹出软键盘
<activity android:name=".MainActivity" android:windowSoftInputMode="stateAlwaysHidden"/>
既然stateHidden和stateAlwaysHidden都可以实现禁止弹出软键盘,那这两者到底有什么区别呢?网上看很多人都说得不清不楚,还不如自己上Android官网看最权威
发现官网的说明还是有点晦涩难懂的,我以我的理解说明下:
当然,我们也可以在Activity的onCreate中设置softInputMode,如下代码所示,和在Manifest中设置是等价的
// 等价于android:windowSoftInputMode="stateHidden" getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); // 等价于android:windowSoftInputMode="stateAlwaysHidden" getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);