草庐IT

android - 宽度 :100% in CSS not rendering well in Android 4. 4

coder 2023-12-17 原文

我在 Android (4.4) 的最新更新中遇到了一个奇怪的问题:我的 CSS 渲染在屏幕上对用户可见,这意味着我的 webview 内容在适应 width:100% CSS 之前非常薄.

我正在使用 android.webkit.WebView 来显示这样的 html 字符串:

webView.loadDataWithBaseURL(null, html, "text/html", "utf-8", null);

此 webview 具有以下尺寸集:

  • 90% 的屏幕宽度用于 webview 宽度
  • WebView 高度的 WRAP_CONTENT

CSS 是为适应 webview 宽度而构建的,然后高度会自行调整。 css 中没有设置绝对宽度或高度。

当我显示我的 web View 时(它已经完全加载,因为我使用 onPageFinished 回调来知道加载已完成),CSS 开始呈现。这让我感到惊讶,因为我认为它应该在我加载 webview 时呈现。 问题是对于用户来说,会显示一条非常小的白线,然后这条线会自行调整以匹配 webview 设置。

如果我在 CSS 中修复宽度,我就没有任何渲染问题。但我不能这样做,因为我想匹配所有屏幕尺寸。

在 Android 4.4 之前没有问题,因为在 CSS 完全渲染之前屏幕上没有任何显示。

顺便说一下,我使用的是 webview 中的 setPictureListener() 方法。我知道这种方法已被弃用(并且已经过时了一段时间),但这是知道 webview 何时真正完成“绘制”在屏幕上的唯一方法。如果我在 Android 4.4 中使用这个方法,它会被调用很多次并且这个错误出现在 DDMS 中:

W/UnimplementedWebViewApi(23891): Unimplemented WebView method run called from: android.os.Handler.handleCallback(Handler.java:733)

我不知道是否有直接关系,我不这么认为,即使不使用这种方法,我的 CSS 也无法正确呈现。

我尝试了很多东西:

  • 使用 javascript onload 使正文可见
  • 在 webview 上使用 chrome 客户端并等待进度达到 100% 以使我的 webview 可见
  • 使用 webview 客户端并等待 onPageFinished 使我的 webview 可见
  • 在使用 PictureListener 使我的 webview 可见时使用 500 毫秒的 postDelayed
  • 使用所有层类型选项:HARDWARE/SOFTWARE/NONE
  • 首先让我的 webview parent INVISIBLE/GONE 然后 VISIBLE

但没有任何效果。 似乎只有当 webview 对用户可见时才会呈现 CSS。

我无法显示源代码,因为它是出于专业目的,所以我只想对我可以搜索的位置有不同的看法(或者如果有人已经在 DDMS 中看到这个奇怪的错误)

有人知道如何在显示此 webview 之前等待 CSS 在 webview 中呈现吗?

非常感谢

最佳答案

我设法解决了这个问题。

我有一个 display: table; 是我的 HTML 主 div 的样式,删除它会使我的渲染看起来不错。

因为它在 Android 以前的版本上运行良好,我无法确定它是 webview 的错误,还是我的 CSS 中的问题。

顺便说一句,谢谢你看看我的问题

关于android - 宽度 :100% in CSS not rendering well in Android 4. 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19810629/

有关android - 宽度 :100% in CSS not rendering well in Android 4. 4的更多相关文章

  1. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  2. Ruby:检查东亚宽度 (Unicode) - 2

    使用Ruby,我必须将字符串以柱状格式输出到终端。像这样:|row1|astringhere|etc|row2|anotherstring|etc我可以使用String#ljust和%s处理拉丁UTF8字符。但是当字符是韩文、中文等时就会出现问题。当英文行与包含韩文等的行交错时,列根本不会对齐。如何在此处实现列对齐?有没有办法以等同于固定宽度字体的方式输出亚洲字符?对于要在Vim中显示和编辑的文档怎么样? 最佳答案 您的问题发生在CJK(中文/日文/韩文)full-widthandwidecharacters(也向下滚动图表);这些

  3. ruby - 我如何在 Ruby 中计算字符串的宽度? - 2

    String.length只会告诉我字符串中有多少个字符。(其实在Ruby1.9之前,它只会告诉我多少个字节,这就更没用了。)我真的很想知道一个字符串有多少个“en”宽。例如:'foo'.width#=>3'moo'.width#=>3.5#m's,w's,etc.arewide'foi'.width#=>2.5#i's,j's,etc.arenarrow'foobar'.width#=>6.25#spacesareverynarrow如果我能得到字符串的第一个n就更好了:'foo'[0,2.en]#=>"fo"'filial'[0,3.en]#=>"fili"'foobarbaz'[

  4. ruby - Unicorn Rails - 在生产模式下启动时占用 100% CPU - 2

    我们正在使用Unicorn_Rails+nginx。它在我的系统(4GBRam,Intel(R)Core(TM)2DuoCPUP8600@2.40GHz)的开发模式和生产模式下运行良好我能够在本地系统中启动10个worker,但在任何情况下都无法在生产中启动超过2个有时它可以工作,但需要等待15-20米启动unicorn_rails时一直占用99.6%的CPU英特尔(R)至强(R)CPUE5507@2.27GHz但它卡在亚马逊(m1.small实例)1.73GB内存我发现没有人在任何地方谈论使用unicorn_rails启动缓慢...... 最佳答案

  5. ruby-on-rails - Rails、Minitest 和 Guard - 为什么 rb-fsevent 占用了超过 100% 的 CPU? - 2

    我在我的Rails应用程序中运行守卫,测试套件(最小的)最近停止正常工作。如果幸运的话,它会运行所有测试一次,也许两次。在那之后,即使是一个小的测试文件被更改也需要很长时间才能响应,以至于使用gem变得徒劳无功。在测试运行时跟随top,我可以看到有一个ruby​​进程持续占用了超过100%的CPU。即使所有测试都已运行并且我没有对文件进行任何更改。ruby进程是:/Users/Bodacious/.rvm/gems/ruby-2.0.0-p247@MyApp/gems/rb-fsevent-0.9.3/bin/fsevent_watch--latency0.1/Users/Bodaio

  6. ruby - 在 Ruby 的正则表达式中,前瞻和后视概念如何支持这种零宽度断言概念? - 2

    我刚刚经历了这个概念Zero-WidthAssertions从文档中。我想到了一些快速的问题-为什么这样的名字Zero-WidthAssertions?Look-ahead怎么了和look-behind概念支持这样的Zero-WidthAssertions概念?什么这样的?,,=s,-4个符号在模式内指示?你能帮我集中精力了解实际发生的事情我还尝试了一些小代码来理解逻辑,但对它们的输出没有那么自信:irb(main):001:0>"foresight".sub(/(?!s)ight/,'ee')=>"foresee"irb(main):002:0>"foresight".sub(/(?

  7. Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信) - 2

    运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid

  8. 【华为OD机试真题 java、python、c++】荒地电站建设【2022 Q4 100分】(100%通过+复盘思路) - 2

    代码请进行一定修改后使用,本代码保证100%通过率,本题目提供了java、python、c++三种代码。复盘思路在文章的最后题目描述祖国西北部有一片大片荒地,其中零星的分布着一些湖泊,保护区,矿区;整体上常年光照良好,但是也有一些地区光照不太好。某电力公司希望在这里建设多个光伏电站,生产清洁能源对每平方公里的土地进行了发电评估,其中不能建设的区域发电量为0kw,可以发电的区域根据光照,地形等给出了每平方公里年发电量x千瓦。我们希望能够找到其中集中的矩形区域建设电站,能够获得良好的收益。输入描述第一行输入为调研的地区长,宽,以及准备建设的电站【长宽相等,为正方形】的边长最低要求的发电量之后每行为

  9. Android 10.0 设置默认launcher后安装另外launcher后默认Launcher失效的功能修复 - 2

    1.前言 在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安装一款Launcher的时候,默认Launcher就会失效,在系统设置的默认应用中Launcher选项就为空,点击home键的时候会弹出默认Launcher列表,让选择进入哪个默认Launcher.所以需要从安装Launcher的流程来分析相关的设置。来解决问题设置默认La

  10. ruby-on-rails - 了解为什么 ruby​​ 进程在 100% CPU 时阻塞的方法 - 2

    我们有一个大型Rails应用程序,几天后,我们的ruby​​进程似乎陷入循环并占用100%的CPU,直到乘客服务器死机并引发502错误。您知道找出原因的最佳方法吗?我已经尝试过NewRelic,但它只是性能方面的东西,而且我们的错误太多了,无法猜测问题出在哪里。(我们每天有很多请求和很多UTF-8BSON错误,因为我们使用的是UTF-8url)使用:Rails3.2.6和Ruby1.9.2p290乘客3.0.13MongoDB2.0.1和Mongoid2.4.11NginxFreeBSD8.2 最佳答案 找出ruby卡住位置的简便方

随机推荐