但凡是界面上有EditText,就必然会使用到软键盘。而软键盘相关的,一向都很恶心!
假如有这样一个页面,中间是一个
EditText,底部有一个按钮,如何让页面在EditText可用的时候,自动弹出软键盘;在EditText不可用的时候,不弹出软键盘?
页面可以参考android手机的锁屏界面的锁屏密码界面。那么,如何做到有时候自动弹出软键盘,有时候不自动弹出。并且,在弹出软件盘的时候,不应该覆盖底部的按钮。
好了,说一下以上的需求需要如何其实现呢?
- 在弹出软件盘的时候,不应该覆盖底部的按钮。
- 就这一条,”在软键盘弹出的时候,不能覆盖底部按钮”。就指定了当前
Activity的清单文件必须加一个属性android:windowSoftInputMode="adjustResize"
- 就这一条,”在软键盘弹出的时候,不能覆盖底部按钮”。就指定了当前
- 在
EditText可用的时候自动弹出软键盘,在EditText不可用的时候,不弹出软键盘。
- 只要在
Activity中设置了android:windowSoftInputMode="adjustResize"这个属性,并且界面上有EditText,就一定会弹出软键盘,即使是et.setEnabled(false)也不行。!!! - 那么,新的问题来了:如何让一个设置了
windowSoftInputMode="adjustResize"的Activity不自动弹出软键盘呢? - :设置
et.setFocusable(false);即可。
- 只要在
嗯,大功告成了。刚刚讲的有点乱,下面简单整理一下该需求的实现要点:
- 在清单文件对应的当前
Activity中添加属性android:windowSoftInputMode="adjustResize"- 在当前
Activity的onCreate() or onResume()代码中,去判断,当前是需要弹出软键盘还是需要不弹出?
- 若需要弹出:不用做任何操作,只有保证页面中
EditText默认可见就可以了。
若不需要弹出:找到EditText对象et,调用et.setFocusable(false)。
— END —

5689

被折叠的 条评论
为什么被折叠?



