在有软键盘的情况下返回键的处理
来源:互联网 发布:航空开放日 长春 知乎 编辑:程序博客网 时间:2024/05/12 12:45
我们知道安卓在有软键盘的时候点击返回键,如果用onkeydown去拦截,那么这次的返回键是被软键盘的隐藏拦截掉的。那么如果要在软键盘弹出的情况下第一次返回键就能被我们自己拦截该怎么做呢?
通过观看源码可知,view身上有个方法是dispatchKeyEventPreIme,这个方法是按键处理转发到view视图的分发方法,接着会调到onpreime, 这个方法是任何按键跟view关联的最先调用的方法。
所以只要重写控件的这两方法的其中一个拦截event写个回调就可以达到我们的目的。虽然重写其中一个都可做到,但是个人觉得还是重写onpreime比较好点,因为dispatchKeyEventPreIme毕竟还是event分发的方法,而onpreime才是真正处理event的方法。
附上自己代码:
<pre name="code" class="java"><pre name="code" class="java">public class IgnoreImeEdittext extends EditText { private OnMyKeyPreIme onMyKeyPreIme; public IgnoreImeEdittext(Context context) { super(context); } public IgnoreImeEdittext(Context context, AttributeSet attrs) { super(context, attrs); } public IgnoreImeEdittext(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if(onMyKeyPreIme!=null){ onMyKeyPreIme.disPatch(keyCode,event); } return super.onKeyPreIme(keyCode, event); } public void setOnMyKeyPreimeListener(OnMyKeyPreIme onMyKeyPreIme){ this.onMyKeyPreIme = onMyKeyPreIme; } public interface OnMyKeyPreIme{ public void disPatch(int keyCode, KeyEvent event); }}
0 0
- 在有软键盘的情况下返回键的处理
- qml在stackView的情况下处理Android back键(返回键)全局双击back键退出程序
- 也就是说在有异步回调函数的情况下,方法的返回值基本都是不能使用的。【也有特殊情况】
- Android 软键盘弹出情况下监听返回键直接退出界面
- Gallery 在有按钮的情况下 相应左右滑动
- 在有数据的情况下更改字段类型
- elasticsearch在有代理的情况下安装head plugin
- Java在有继承情况下初始化函数的调用
- android禁掉软键盘,在光标存在情况下永远不再显示软键盘.
- Android 软键盘的处理
- 处理在多参数情况下分页参数的完整性
- 在Linux下Firefox浏览器显示乱码的情况处理
- 关于软键盘弹起时监听返回键的问题
- Android软键盘删除键触发Activity的返回事件
- 如何将软键盘的返回键改为“搜索”
- 软键盘的删除和返回键冲突
- Android软键盘删除键触发Activity的返回事件
- android 软键盘在全屏下的布局计算问题
- 常用Java性能测试工具的分析与对比
- Win32项目与win32控制台(console)应用程序、空项目区别即相互之间的转换
- Oracle 中的 FORALL 语句
- wait() waitpid()
- Linux 的启动流程
- 在有软键盘的情况下返回键的处理
- 马太效应
- 802.11 bgn含义(速率标准)
- 怎样拆分ABBYY FineReader中文档
- 关联规则Java实现
- 一种更加清晰的Android架构
- 对于Android Service 生命周期进行全解析
- 关于AngularJS的ng-class
- 微信退款API响应:“卖家信息校验不一致,请核实后再试”