Android 软键盘弹起隐藏的监听
2015-01-24 16:45
393 查看
Android软键盘是没有直接的监听事件的,网上说通过该SDK源码,重新编译可以实现直接的监听,但总感觉复杂,只是没办法中的办法。还有一种是通过监听onLayout函数来实现,但这个有局限性,只针对压缩布局,就是软键盘弹起后,屏幕布局上下压缩的形式,不过相对简单,特定情况下用着也很方便,所以上网搜了下,记下来。
总共两步: 一 复写布局
二 实现监听
一:复写布局,以LinearLayout为例。
二:activity里面实现监听。
总共两步: 一 复写布局
二 实现监听
一:复写布局,以LinearLayout为例。
package com.yy.my.utils; import android.content.Context; import android.util.AttributeSet; import android.widget.LinearLayout; /** * 重写布局,实现压缩模式下软键盘弹出隐藏的监听 * * @author Administrator * * 2015.1.24 */ public class ResizeLayout extends LinearLayout{ private OnResizeListener mListener; public interface OnResizeListener{ void OnResize(int w, int h, int oldw, int oldh); } public void setOnResizeListener(OnResizeListener l){ mListener = l; } public ResizeLayout(Context context) { super(context); } public ResizeLayout(Context context, AttributeSet attrs){ super(context, attrs); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); if (mListener != null){ mListener.OnResize(w, h, oldw, oldh); } } }
二:activity里面实现监听。
//重写的LinearLayout布局 ResizeLayout mLayout = (ResizeLayout) findViewById(R.id.main_root_layout_id); mLayout.setOnResizeListener(new OnResizeListener() { //对布局进行监听 @Override public void OnResize(int w, int h, int oldw, int oldh) { if (h < oldh){ //现在的高度小于原有高度,说明软键盘弹起,压缩了布局 } if (h > oldh){ //现在的高度大于原有高度,说明软键盘隐藏了 } } });
相关文章推荐
- android 监听软键盘弹起和关闭状态与点击空白区域软键盘隐藏
- Android监听软键盘的弹起和隐藏
- android 监听判断软键盘的弹出、隐藏状态
- android软键盘现实和隐藏的监听
- Android 监听软键盘的显示与隐藏
- android监听软键盘的弹出与隐藏
- Android监听手机软键盘的弹起和关闭
- Android检测软键盘的弹起与隐藏
- android软键盘的监听和手动弹起
- android 监听软键盘的显示与隐藏
- Android之监听手机软键盘弹起与关闭
- Android监听软键盘的显示与隐藏
- android 检测软键盘的弹起与隐藏【绝对经典,好用】
- Android软键盘的隐藏显示监听
- Android 监听软键盘的显示与隐藏
- 监听软键盘的弹起与隐藏
- Android之监听手机软键盘弹起与关闭
- Android之监听手机软键盘弹起与关闭
- android 软键盘弹起监听事件
- 关于android 软键盘显示与隐藏监听