Android监听软键盘弹出与收起
2015-12-22 22:47
429 查看
项目需求,亲测可用。
1. 在EditText的父控件加上
2. 设置初始化标志位,免得其他调用干扰
3. 监听界面调整事件
4. 判断事件
1. 在EditText的父控件加上
android:focusable="true" android:focusableInTouchMode="true"
2. 设置初始化标志位,免得其他调用干扰
editText = (EditText) view.findViewById(R.id.editText); editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { init = true; } } });
3. 监听界面调整事件
rootLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { public void onGlobalLayout() { if (init) { if (isKeyboardShown(editText.getRootView())) { // Do something when keyboard is shown } else { // Do something when keyboard is hidden } } } });
4. 判断事件
private boolean isKeyboardShown(View rootView) { final int SOFT_KEYBOARD_HEIGHT_DP_THRESHOLD = 128; Rect r = new Rect(); rootView.getWindowVisibleDisplayFrame(r); int heightDiff = rootView.getBottom() - r.bottom; return heightDiff > ViewUtils.dpToPixel(SOFT_KEYBOARD_HEIGHT_DP_THRESHOLD); }
相关文章推荐
- 七牛---Android SDK进行代码混淆配置
- android studio使用
- Android动画(2)视图动画
- Android项目实战之战途牛
- Android内存溢出 (oom)实战
- android之旅3:内外部存储读写数据
- Android动画(1)--帧动画
- android解决方法数超过65536问题
- android activity生命周期
- 利用drozer进行Android渗透测试
- MVP模式在Android开发中的应用
- ListView中停靠(悬浮)效果
- android内存管理(三)
- MPAndroidchart 教程:图例 Legend(七)
- Android用surface直接显示yuv数据
- Android四大组件之Broadcast
- android listview 的监听事件
- Android开发中ANR详解及解决办法
- 清华大学研读间助手-清华小图Android
- Android 学习