android dialog中软键盘压盖输入框
16lz
2021-01-26
最近做项目遇到在自定义dialog中有edittext,当输入时出现软键盘压盖输入框导致看不到输入内容。于是查找资料解决问题:(1)在dialog依赖的activity中设置style android:windowSoftInputMode="adjustPan"(2)自定义dialog设置style android:windowSoftInputMode="adjustPan"由于我的是特制机通过以上方法还是没有解决,针对以品牌机虽然布局被顶上去了,但还是会稍微压盖输入框经过几番思索,想出一个解决思路:(1)整个布局是个ScrollView ,给ScrollView中的根布局添加一个控件设置gone,使其居于布局最底下,高低自定义 (2)监听输入框视图变化变化,当变化时获取屏幕可见高,和屏幕原始高做对比,当等于0 说明软键盘没弹出,当大于0说明压键盘弹出 (3)在弹出软键盘时,让最底下控件显示,这是可以手动滑动布局让弹窗不压盖输入框,当软键盘消失,隐藏最底下控件多说无益还是直接上代码: view---最底下控件 dialog---当前dialog et_text---需要监听的输入框//监听控件输入时软键盘弹出消失,设置底部控件margin et_Text.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener @Override public void onGlobalLayout() { Rect r = new Rect(); //获取界面可视部分 dialog.getWindow().getDecorView().getWindowVisibleDisplayFrame(r); //获取屏幕的高度 int screenHeight = dialog.getWindow().getDecorView().getRootView().getHeight(); //比较可视高度和屏幕高度 int heightDifference = screenHeight - r.bottom; if(heightDifference>0){//软键盘弹出 view.setVisibility(View.VISIBLE); }else{ view.setVisibility(View.GONE);////软键盘消失 } } });
更多相关文章
- Android(安卓)软键盘不能弹出
- Android(安卓)EditText获取焦点后只显示光标不弹出软键盘
- 【Android】使用SearchView时软键盘不支持actionSearch的问题
- Android(安卓)-- MeasureSpec
- Xamarin.Android(安卓)自定义VideoView 进度条
- 关于Android布局中键盘遮挡问题
- android点击输入法会把底部顶上去的解决办法
- android之listView定位到指定行同时隐藏输入键盘
- Android应用程序键盘(Keyboard)消息处理机制分析(7)