android-解决全屏-webview-输入框被输入法挡住-FullScreen-adjustResize失效问题
由于公司开发的 App 中,Html 的页面嵌入的有点多,坑爹的是,还有很多输入框,这就算了,还要求全屏。然后就出现了这个情况。
下面来唠叨唠叨具体的来龙去脉。
起初是这样的,整个项目基本完工了。测试发现,Html 的输入框在下半屏幕的时候,点击,软键盘弹出来的时候,会把输入框挡住。
好吧,这个问题确实有点大,要是小问题就不管也算了,先上线,以后修复。当时也是临下班的时候才跟我说,没办法,只能头头是道的答应下来,明天解决。哈哈。。。。。。不想加班,加班会猝死的。
第二天开始疯狂的搜索。结果杳无音信,没办法,自己写了个 demo 测测,结果,自己的可以,为啥?一个一个慢慢排除,自己的demo的属性和项目中的webview的属性这部分核对一遍,发现,没用,都一样,最后排除到 Manifest 清单文件中的 Activity 的注册那里,老子火大,一口气全部属性删干净,结果一测,问题就出现在这里,继续顺藤摸瓜,排除掉几个自己不可能的干扰的属性和根本不可能的影响的属性,结果一测,咦,弹出来了,问题就出现在这里,再排出掉那些根本不可能的影响的属性外。测了一下,基本锁定在了全屏这个属性的影响了。
事情总算有点眉目了。现在再次进行一轮的搜索,发现网上已经很多弟兄已经遇到过这个问题了,但十有八九都是没解决,只是知道这是Google 留给开发者的一个坑,因为在全屏的状态下,会自动屏幕掉 adjustResize 这些属性,也就是是说,无论这些属性加不加都没什么关系,很多人知道了是 Google 的坑,也就没多大理会了,但还是有些找出了解决方案,哈哈,代码搬运工,把砖搬过来就可以了,简单。
下面是解决方案:

在Activity/Fragment的onCreate()/onCreateView()里调用AndroidBug5497Workaround.assistActivity(Activity);
这里提醒一下,最好放在最后面。我一开始放在 super 后面,setcontentView 前面,报了空指针。
最后为了省事 ,直接放在onCreate最后面。
最后说一下原理,原理就是当软键盘弹出来的时候,webview的高度根据屏幕的大小进行动态的调整
代码搬运,希望能够帮助到各位。感谢答案提供者,祝生活愉快。也为我在此记上一笔。
2016-11-07
android-解决全屏-webview-输入框被输入法挡住-FullScreen-adjustResize失效问题的更多相关文章
- QT for android 比较完美解决 全屏问题
项目用到QT qml,需要在android下面全屏显示,折腾了一晚上,搞定,分享下,希望能帮助他人. 参考 Qt on Android:让 Qt Widgets 和 Qt Quick 应用全屏显示 该 ...
- 【Android 基础】Android中全屏或者取消标题栏
先介绍去掉标题栏的方法: 第一种:也一般入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 注意这句一定要写在se ...
- Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法(转)
Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法http://www.cnblogs.com/zdz8207/archive/2013/02/27/android- ...
- Xamarin Android Activity全屏的两种方式
方式一 直接在Activity的Attribute中定义 如下 在 MainActivity 中 [Activity(Label = "app", MainLauncher = t ...
- Android实现全屏的三种方式
一.通过代码 requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题栏 getWindow().setFlags(WindowManager.Lay ...
- android在全屏下第一次触摸屏幕没有触发事件
A.设置全屏的方法很多就不多说了,常见如下两种(记录用以备忘): 1.在Androidmanifest.xml文件中设定,如: <activity android:name="com. ...
- Xamarin 中开发Android实现全屏或者不显示标题栏的方法-宋兴柱
using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; ...
- Android 实现全屏、无标题栏
实现全屏无标题栏: 1.在xml文件中进行配置 AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可. 实现全屏效果: and ...
- Android中全屏或者取消标题栏
先介绍去掉标题栏的方法: 第一种:也一般入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 注意这句一定要写在se ...
- Android设置全屏
全屏显示 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLA ...
随机推荐
- 移动站应该尝试百度MIP的五个原因
MIP是什么?MIP是百度在2016年提出的移动网页加速器项目. MIP能做什么?MIP能帮助站长和网站开发者快速搭建移动端页面. MIP怎么加速?MIP从前端渲染和页面网络传输两方面进行优化,杜绝页 ...
- SQL Server 数据加密功能解析
SQL Server 数据加密功能解析 转载自: 腾云阁 https://www.qcloud.com/community/article/194 数据加密是数据库被破解.物理介质被盗.备份被窃取的最 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- 一个免费的、跨平台的、开源音频编辑器Audacity
Audacity 是一个免费的开源程序,用于编辑音频录制.它可在多个平台(windows/linux)上运行.Audacity 基于 GUI,是一个具有多种选项的强大程序.它支持您录制各种类型的声音. ...
- Unity 序列化 总结
查找了 Script Serialization http://docs.unity3d.com/Manual/script-Serialization.html 自定义序列化及例子: http:// ...
- 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)
统计角度窥视模型概念 作者:白宁超 2016年7月18日17:18:43 摘要:写本文的初衷源于基于HMM模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...
- RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密
最近换了一份工作,工作了大概一个多月了吧.差不多得有两个月没有更新博客了吧.在新公司自己写了一个iOS的比较通用的可以架构一个中型应用的不算是框架的一个结构,并已经投入使用.哈哈 说说文章标题的相关的 ...
- 设计模式C#合集--单例模式
单例模式 代码: 第一种: private static Singleton singleton = null; private Singleton() { } public static Singl ...
- centos6.5 nginx-1.8.0和ftp搭建图片服务器
一.Nginx的安装步骤 1.Nginx安装环境: gcc: 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c+ ...