Android 监听键盘的弹出与关闭,收起
来源:互联网 发布:斗鱼客户端mac版 编辑:程序博客网 时间:2024/05/16 01:53
新建键盘的监听类
import android.app.Activity;import android.view.View;import android.view.ViewTreeObserver;/** * Created by ly on 2017/3/21 0021. */public class KeyboardChangeListener implements ViewTreeObserver.OnGlobalLayoutListener { private static final String TAG = "ListenerHandler"; private View mContentView; private int mOriginHeight; private int mPreHeight; private KeyBoardListener mKeyBoardListen; public interface KeyBoardListener { /** * call back * * @param isShow true is show else hidden * @param keyboardHeight keyboard height */ void onKeyboardChange(boolean isShow, int keyboardHeight); } public void setKeyBoardListener(KeyBoardListener keyBoardListen) { this.mKeyBoardListen = keyBoardListen; } public KeyboardChangeListener(Activity contextObj) { if (contextObj == null) { return; } mContentView = findContentView(contextObj); if (mContentView != null) { addContentTreeObserver(); } } private View findContentView(Activity contextObj) { return contextObj.findViewById(android.R.id.content); } private void addContentTreeObserver() { mContentView.getViewTreeObserver().addOnGlobalLayoutListener(this); } @Override public void onGlobalLayout() { int currHeight = mContentView.getHeight(); if (currHeight == 0) { return; } boolean hasChange = false; if (mPreHeight == 0) { mPreHeight = currHeight; mOriginHeight = currHeight; } else { if (mPreHeight != currHeight) { hasChange = true; mPreHeight = currHeight; } else { hasChange = false; } } if (hasChange) { boolean isShow; int keyboardHeight = 0; if (mOriginHeight == currHeight) { //hidden isShow = false; } else { //show keyboardHeight = mOriginHeight - currHeight; isShow = true; } if (mKeyBoardListen != null) { mKeyBoardListen.onKeyboardChange(isShow, keyboardHeight); } } }}
具体的使用方法 在activity中调用
KeyboardChangeListener softKeyboardStateHelper = new KeyboardChangeListener(this); softKeyboardStateHelper.setKeyBoardListener(new KeyboardChangeListener.KeyBoardListener() { @Override public void onKeyboardChange(boolean isShow, int keyboardHeight) { if (isShow) { //键盘的弹出 } else { //键盘的收起 } } });
0 0
- Android 监听键盘的弹出与关闭,收起
- Android监听键盘弹出收起
- android 监听键盘弹出收起状态
- Android 监听键盘弹出关闭
- Android监听软键盘弹出与收起
- 键盘弹出与收起
- android 键盘弹起/收起监听
- 键盘弹出监听和点击键盘完键盘收起
- Android 软键盘遮挡处理和软键盘弹出与收起的监听
- iOS 监听键盘的弹出,收起,并且拿到键盘的高度
- 监听软键盘的弹出与收起(近乎完美)
- android 监听软键盘的弹出和收起
- android实现软键盘弹出/收起的监听
- android监听键盘打开收起事件
- android监听键盘弹出
- Android 软键盘弹出/收起监听
- Android 软键盘弹出与关闭监听
- Android完美检测键盘弹出/收起
- 获取文件目录和文件名
- swift 3.0翻译 RN
- 计时器
- 批量修改mysql 表格字段编码
- ecshop库文件分页
- Android 监听键盘的弹出与关闭,收起
- 【MySQL性能优化】MySQL常见SQL错误用法
- ECSHOP全部品牌页实现分页换页功能方法
- 监控log文件变化进行读出变化的内容供分析的源码类
- Web安全核心书单
- Linux下date命令,格式化输出,时间设置
- Windows下php页面读取 mysql"中文数据"出现乱码的解决方法
- HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法区别
- 再探jQuery