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 ...
随机推荐
- IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题
你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...
- CSS HTML元素布局及Display属性
本篇文章主要介绍HTML的内联元素.块级元素的分类与布局,以及dispaly属性对布局的影响. 目录 1. HTML 元素分类:介绍内联元素.块级元素的分类. 2. HTML 元素布局:介绍内联元素. ...
- JavaScript Array对象
介绍Js的Array 数组对象. 目录 1. 介绍:介绍 Array 数组对象的说明.定义方式以及属性. 2. 实例方法:介绍 Array 对象的实例方法:concat.every.filter.fo ...
- 移动端1px边框
问题:移动端1px边框,看起来总是2倍的边框大小,为了解决这个问题试用过很多方法,用图片,用js判断dpr等,都不太满意, 最后找到一个还算好用的方法:伪类 + transform 原理是把原先元素的 ...
- js学习之函数的参数传递
我们都知道在 ECMAScript 中,数据类型分为原始类型(又称值类型/基本类型)和引用类型(又称对象类型):这里我将按照这两种类型分别对函数进行传参,看一下到底发生了什么. 参数的理解 首先,我们 ...
- RIFF和WAVE音频文件格式
RIFF file format RIFF全称为资源互换文件格式(Resources Interchange File Format),是Windows下大部分多媒体文件遵循的一种文件结构.RIFF文 ...
- Syscall,API,ABI
系统调用(Syscall):Linux2.6之前是使用int0x80(中断)来实现系统调用的,在2.6之后的内核是使用sysentry/sysexit(32位机器)指令来实现的系统调用,这两条指令是C ...
- 使用Nginx反向代理 让IIS和Tomcat等多个站点一起飞
使用Nginx 让IIS和Tomcat等多个站点一起飞 前言: 养成一个好习惯,解决一个什么问题之后就记下来,毕竟“好记性不如烂笔头”. 这样也能帮助更多的人 不是吗? 最近闲着没事儿瞎搞,自己在写一 ...
- Firefox开发者专版浏览器,Web开发者利器.
2015的11月9日,Firefox迎来了自己的十周岁生日.在庆祝Firefox十周年之际,Mozilla发布了Firefox开发者专版,这是首款专门为开发者打造的浏览器. 浏览器中独特的暗色调设计. ...
- 在jexus下如何简单的配置多站点
参考:linuxdot.net 其实jexus的配置还是比较简单的,目录即站点(一个目录就是一个站点,一个配置文件就是一个站点) 如uustudy.net,在siteconf目录下创建一个uustud ...