1

個別のスピナーを表示するために、3つの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>

何かご意見は?

ありがとう、ナサニエル。

4

2 に答える 2

1

この問題を抱えている人のために:

私が見つけたところによると、Webビューが作成されるときにいくつかのスレッドが実行されており、特定の変数(たとえば、幅)がスレッド間で参照されています。これは、レンダリング時にデータが利用できない場合があるため、コードを「不完全」と引用するためのものです。

これを見てください:

コード

そしてctrl-f「ViewWidthを取得できません」というエラーのテキスト...そしてあなたは私が話していることを見るでしょう。

ここでの興味深い続きは、私が複数のWebビューを使用していたことです。これにより、その問題が悪化した可能性があります。もう1つの興味深い側面は、コードで失敗したWebビューが、常に失敗したわけではありませんが、常にコンテンツがロードされた最初のWebビューであったことです。

私の解決策は、最初に失敗させてから、失敗したWebビューを再レンダリングすることでした。

お役に立てれば。

ナサニエル。

于 2012-05-29T13:21:16.753 に答える
0

ロードされない場合はどうなりますか?logcatでエラーが発生しますか?

データをロードした後、これを実行してみてください。

webView.refreshDrawableState();
于 2012-05-24T18:26:27.017 に答える