自定义布局监听软件盘弹出关闭
2017-01-04 23:10
429 查看
在我的项目有个监听软键盘的需求 我找了好多东西 都没有合适 都监听的不怎么样 虽然 没有找到最好的方法 但是找到一个取巧的方法那就是自定义布局监听布局发生的改变来达到监听的目的代码如下
public class MyRelativeLayout extends RelativeLayout { private InputWindowListener listener; public MyRelativeLayout(Context context) { super(context); } public MyRelativeLayout(Context context, AttributeSet attrs) { super(context, attrs); } public MyRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } //主要是这个方法 布局的size发生改变 @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); Log.i("MyRelativeLayout", "onSizeChanged: "+oldh+"========"+h); if (oldh > h) { Log.i("fff","input window show"); if (listener!=null){ listener.show(); } } else{ Log.i("fff","input window hidden"); if (listener!=null){ listener.hidden(); } } }
//写个接口 来抛出显示和影藏的方法 public void setListener(InputWindowListener listener) { this.listener= listener; } public interface InputWindowListener { void show(); void hidden(); } }这里提醒一下 这个如果 你直接就写一个editview测试 会发现只会第一次 出发
onSizeChanged下面 不触发了 那是因为布局没有发生改变
解决方式就是让软件盘把布局顶上去 那么 布局大小必然发生改变
所以在清单文件 对对应的activity加上这个属性就Okl
android:windowSoftInputMode="stateVisible|adjustResize"
希望对你们有所帮助
相关文章推荐
- android 软键盘布局 及 关闭 弹出
- ymPrompt 自定义关闭弹出的子窗口
- Android 监听键盘弹出关闭
- 软件盘强制弹出与强制关闭
- 访问使用自定义弹出对象的网页时,Internet Explorer 6 意外关闭
- 弹出软键盘输入的时候完成后要关闭软件盘
- Android学习问题:关于AlertDialog中自定义布局带有的EditText无法弹出键盘
- 软件盘将布局遮挡,软键盘弹出把布局顶出去问题
- 通过监听最外层布局的改变判断键盘的状态,软键盘的弹出和收起都会改变外层布局
- Popup弹出自定义布局对话框
- 【多级树形菜单-dialog自定义动画弹出方式-手势监听】android实现treeView
- Android底部弹出的View,可自定义布局
- 三行代码接入,社交软件打字时底下弹出的表情布局,自定义ViewPager+页面点标+各种功能的android小框架。
- Android 软键盘弹出与关闭监听
- 重写android.app.ProgressDialog实现自定义进度条弹出框布局
- Android底部弹出的View,可自定义布局
- Android 软键盘弹出与关闭监听
- [转]Android底部弹出的View,可自定义布局
- 【多级树形菜单-dialog自定义动画弹出方式-手势监听】dialog自定义动画
- JS实现可自定义大小,可双击关闭的弹出层效果