最近做项目遇到在自定义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);////软键盘消失                }            }                    });

 

更多相关文章

  1. Android(安卓)软键盘不能弹出
  2. Android(安卓)EditText获取焦点后只显示光标不弹出软键盘
  3. 【Android】使用SearchView时软键盘不支持actionSearch的问题
  4. Android(安卓)-- MeasureSpec
  5. Xamarin.Android(安卓)自定义VideoView 进度条
  6. 关于Android布局中键盘遮挡问题
  7. android点击输入法会把底部顶上去的解决办法
  8. android之listView定位到指定行同时隐藏输入键盘
  9. Android应用程序键盘(Keyboard)消息处理机制分析(7)

随机推荐

  1. android 广告方面知识汇总
  2. Android(安卓)FrameWork学习(二)Android系
  3. Android开发者必须深入学习的10个应用开
  4. Android中解析XML
  5. 【OSC手机App技术解析】- 集成新浪微博An
  6. Google Android开发精华教程
  7. Python中5个你可以能不知道的知识
  8. Python 的高级用法
  9. Python中容器类型转换的三种方法
  10. 使用 Lightly 在线格式化 HTML