解决安卓全屏“FLAG_FULLSCREEN”状态下“adjustResize”失效,全屏状态下WebView的输入框被软键盘挡住的问题
沿着这个问题的线索,可以追溯到: http://code.google.com/p/android/issues/detail?id=5497 ,安卓官方问题回馈帖,这个问题的代号为“ 5497 ” ,就这个问题帖的回复来看,该问题困惑了许多人数年之久,问题发布日期“ Dec 16, 2009 ”,现在我在安卓 4.4.2 环境运行,这个问题依旧存在。在此推荐这其中的一个解决方法,来自:stackoverflow.com,实测有效。
- public class AndroidBug5497Workaround {
- // For more information, see https://code.google.com/p/android/issues/detail?id=5497
- // To use this class, simply invoke assistActivity() on an Activity that already has its content view set.
- public static void assistActivity (Activity activity) {
- new AndroidBug5497Workaround(activity);
- }
- private View mChildOfContent;
- private int usableHeightPrevious;
- private FrameLayout.LayoutParams frameLayoutParams;
- private AndroidBug5497Workaround(Activity activity) {
- FrameLayout content = (FrameLayout) activity.findViewById(android.R.id.content);
- mChildOfContent = content.getChildAt(0);
- mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
- public void onGlobalLayout() {
- possiblyResizeChildOfContent();
- }
- });
- frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams();
- }
- private void possiblyResizeChildOfContent() {
- int usableHeightNow = computeUsableHeight();
- if (usableHeightNow != usableHeightPrevious) {
- int usableHeightSansKeyboard = mChildOfContent.getRootView().getHeight();
- int heightDifference = usableHeightSansKeyboard - usableHeightNow;
- if (heightDifference > (usableHeightSansKeyboard/4)) {
- // keyboard probably just became visible
- frameLayoutParams.height = usableHeightSansKeyboard - heightDifference;
- } else {
- // keyboard probably just became hidden
- frameLayoutParams.height = usableHeightSansKeyboard;
- }
- mChildOfContent.requestLayout();
- usableHeightPrevious = usableHeightNow;
- }
- }
- private int computeUsableHeight() {
- Rect r = new Rect();
- mChildOfContent.getWindowVisibleDisplayFrame(r);
- return (r.bottom - r.top);
- }
- }
在Activity/Fragment的onCreate()/onCreateView()里调用AndroidBug5497Workaround.assistActivity(Activity);代码搬运,希望能够帮助到各位。感谢答案提供者,祝生活愉快。
解决安卓全屏“FLAG_FULLSCREEN”状态下“adjustResize”失效,全屏状态下WebView的输入框被软键盘挡住的问题相关推荐
- 解决安卓H5输入框获取焦点软键盘页弹起,页面高度被压缩问题
在移动项目开发中经常会遇到输入框获取焦点软键盘页弹起,页面高度被压缩,输入框获取焦点时弹不上去的问题,我本次的是vue的UI框架(vux) 解决办法如下代码: 只要在页面初始化完成的时候,获取屏幕的可 ...
- Android爬坑之旅:软键盘挡住输入框问题的终极解决方式
本文由BarryZhang原创,同一时候首发于diycode.cc.barryzhang.com .github.com/barryhappy.非商业转载请注明作者和原文链接. 前言 开发做得久了.总 ...
- android 键盘遮盖输入框_Android各种键盘挡住输入框解决办法
原标题:Android各种键盘挡住输入框解决办法 今日科技快讯 C919大型客机首飞成功,让很多人激动不已.然而近日网上也出现了一些不同的声音:说这架飞机许多部件都是进口货,甚至有人说C919中国人只 ...
- 5种方法完美解决android软键盘挡住输入框方法详解
版权声明:本文为CSDN博主「潇潇凤儿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/smileiam/ ...
- android 键盘遮盖输入框_各种键盘挡住输入框终极解决办法
对于键盘挡住输入框,给出了多种方案,希望对大家有所帮助. 在开发中,经常会遇到键盘挡住输入框的情况,比如登录界面或注册界面,弹出的软键盘把登录或注册按钮挡住了,用户必须把软键盘收起,才能点击相应按钮, ...
- 完美解决android软键盘挡住输入框方法,还不顶标题栏
非透明状态栏下使用adjustResize和adjustPan,或是透明状态栏下使用fitsSystemWindows=true属性 在AndroidManifest.xml对应的Activity里添 ...
- android 键盘遮盖输入框_Android软键盘遮住输入框的解决方法终极适配
新的一周,新的开始迎接新的挑战.今天简单介绍一下Android输入框被软键盘遮住的两种常用方法. 法一:清单文件对要进行设置的Activity属性配置android:windowSoftInputMo ...
- [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决?
[html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决? window.addEventListener("resize", function () {if ...
- Activity在全屏属性情况下,WebView会出现输入法软键盘遮挡输入框(界面无法自动上调)问题
转自:http://www.rcdio.com/js/mg/xy/47922.html 正常情况下 ,设置了该属性之后,软键盘在弹出时,输入框便不会被遮挡. 但是该属性在有些情况下是不生效的,目前我所 ...
最新文章
- 10个免费在线逻辑关系图表图形设计制作工具
- epoll 使用详解
- 事件控制寄存器(AFIO_EVCR) (2011-09-09 13:51:58)
- 《移动优先与响应式Web设计》一1.2 设备不同,功能不同
- P4 前端编译器p4c-bm、后端编译器bmv2命令安装 make error问题
- android 在线设计工具,21个免费的UI界面设计工具、资源及网站
- linux基础-第十六单元 yum管理RPM包
- 使用Flask-SocketIO完成服务端和客户端的双向通信
- POJ 1002 电话号码字符串处理
- php mvc框架单例,ZeroPHP: 开发的第一个PHP框架 遵循MVC架构设计。
任重道远。
- 互联网全球化趋势下,印度极得美自我革新
- 无人机群编队分析的定位问题 分析与思考-1(数学建模竞赛2022年B题)
- 仿layui风格漂亮easyui主题皮肤美化
- 微信语音内容怎么录制,电脑如何内录
- android pin码 经典蓝牙_请问 蓝牙 的自动设置PIN码 功能该怎么实现。
- 超出本地计算机网络,超出本地计算机网络适配器卡的名称限制怎么解决?
- 小程序AppId-当前开发者未绑定此AppId,请到小程序管理后台操作后重试
- 判断PPC或者SP平台
- MVC jQuery表单验证
- 偷得浮生半日闲:手写数字的识别
热门文章
- 肾囊肿会出现什么异常?
- 外星人电脑切歌快捷键设置
- php mongodb的lookup,通过Aggregate $lookup操作 进行MongoDB的联表查询
- 人机交互到艺术设计及玫瑰花绘制实例
- 牛客网 完美世界2017校招技术综合A卷——部分
- python中global的意思_python中global是什么意思?
- setTimeout()使用实例
- 【C++】去除字符串string中的空格(两头空格、所有空格)
- 将所有的input框设置为只读
- matlab 表格的颜色设置,如何根据表格中的数据修改合适的单元格颜色(在Matlab中)?...