Javascript W/webcore(2733):Can';t在第一次布局后获取viewWidth

Javascript W/webcore(2733):Can';t在第一次布局后获取viewWidth,javascript,android,html,css,Javascript,Android,Html,Css,我有三个相邻的web视图,用于显示单独的微调器。我有时会遇到这个错误,这会导致窗口渲染出现问题 这是我的xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_pare

我有三个相邻的web视图,用于显示单独的微调器。我有时会遇到这个错误,这会导致窗口渲染出现问题

这是我的xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
   <LinearLayout 

    android:orientation="horizontal" 
    android:layout_height="300dp"
    android:layout_width="match_parent"
    android:gravity="center">

        <WebView
            android:id="@+id/measure_view" 
            android:background="#77000000"
            android:layout_height="match_parent" 
            android:layout_width="160dp"
            android:focusable="true"/>

        <WebView
            android:id="@+id/input_view" 
            android:background="#77000000"
            android:layout_height="match_parent" 
            android:layout_width="160dp"
            android:focusable="true"/>
        <WebView
            android:id="@+id/output_view" 
            android:background="#77000000"
            android:layout_height="match_parent" 
            android:layout_width="160dp"
            android:focusable="true"/>


    </LinearLayout>

有什么想法吗


谢谢,纳撒尼尔

当它不加载时会发生什么?日志中有错误吗

加载数据后,请尝试执行以下操作:

webView.refreshDrawableState();

当它不加载时会发生什么?日志中有错误吗

加载数据后,请尝试执行以下操作:

webView.refreshDrawableState();

对于有此问题的任何人:

从我发现的情况来看,创建WebView时会出现一些线程,某些变量(例如宽度)会在线程之间被引用。这是引用代码“不完美”,因为有时数据在渲染时不可用

看看这个:

和ctrl-f错误文本“无法获取viewWidth”。。。你会明白我在说什么

这里一个有趣的延续是,我使用了多个Web视图——这可能加剧了这个问题。另一个有趣的方面是,在我的代码中失败的webview总是第一个加载内容的,尽管它并不总是失败

我的解决方案是让事情第一次失败,然后重新呈现失败的web视图

希望这有帮助


纳撒尼尔。

对于任何有此问题的人:

从我发现的情况来看,创建WebView时会出现一些线程,某些变量(例如宽度)会在线程之间被引用。这是引用代码“不完美”,因为有时数据在渲染时不可用

看看这个:

和ctrl-f错误文本“无法获取viewWidth”。。。你会明白我在说什么

这里一个有趣的延续是,我使用了多个Web视图——这可能加剧了这个问题。另一个有趣的方面是,在我的代码中失败的webview总是第一个加载内容的,尽管它并不总是失败

我的解决方案是让事情第一次失败,然后重新呈现失败的web视图

希望这有帮助


纳撒尼尔。

我能找到的任何地方都没有错误。不过我会尝试一下刷新。谢谢。嘿,我发现了这个错误05-24 16:07:29.778:W/webcore(1639):第一次布局后无法获取viewWidth-碰巧知道htat的任何信息?我开始发疯了,哈哈。哪里都找不到错误。不过我会尝试一下刷新。谢谢。嘿,我发现了这个错误05-24 16:07:29.778:W/webcore(1639):第一次布局后无法获取viewWidth-碰巧知道htat的任何信息?我开始发疯了,哈哈。你能分享一下你是如何检测失败的,以及你是如何呈现网络视图的吗?嘿,Steellight,np。基本上,我只是假设这三个视图都失败了,然后重新绘制它们。关于我如何处理重新呈现它的:web_view.loadUrl(“javascript:window.location.reload(true);”;我经常使用JavaScript,因此如果您不想这样做,我不确定重新渲染的最佳方式是什么。重新加载(true)不意味着您正在清除浏览器缓存,因此需要再次重新下载整个网页吗?效率很低,不是吗?一定有更好的解决办法……是的,效率很低。没有分歧。我从来没有发现过除了一起抛弃网络视图以外的其他方法。你能分享一下你是如何检测失败的,以及你是如何呈现网络视图的吗?嘿,Steellight,np。基本上,我只是假设这三个视图都失败了,然后重新绘制它们。关于我如何处理重新呈现它的:web_view.loadUrl(“javascript:window.location.reload(true);”;我经常使用JavaScript,因此如果您不想这样做,我不确定重新渲染的最佳方式是什么。重新加载(true)不意味着您正在清除浏览器缓存,因此需要再次重新下载整个网页吗?效率很低,不是吗?一定有更好的解决办法……是的,效率很低。没有分歧。我从来没有发现,除了一起抛弃网络视图之外,我还没有找到其他方法。