1

ネイティブアプリ内でWebViewをレンダリングするのに苦労しています。下にスクリーンショットをいくつか貼り付けました。これは、幅が変更されるたびにWebViewがどのように動作するかを示しています。

また、メニュードロワーを開くたびにWebビューが右に移動するドロワーメニューを使用しています

WEBVIEWがロードされたときのスクリーンショット

ここに画像の説明を入力してください

今までは問題ないようですが、ドロワーメニューを開いたり閉じたりしても、幅は100%に戻らず、50%のままです。

ドロワーメニューを開いたり閉じたりした後

ここに画像の説明を入力してください

また、ドロワーメニューを開くとWebビューがぼやけます

ドロワーメニューが開いているときのスクリーンショット

ここに画像の説明を入力してください

また、webviewのいくつかの異なる設定を試しましたが、どれも機能しませんでした。ここでも、webviewjavaコードを使用します。

JAVAコード

                 mWebView = (WebView) findViewById( R.id.webView1 );
             mWebView.getSettings().setJavaScriptEnabled(true);  
             mWebView.getSettings().setSupportZoom(false);
             mWebView.getSettings().setBuiltInZoomControls(false);
             // Load URL
             mWebView.loadUrl(requestUrl);
4

1 に答える 1

1

私たちの議論に続いて、問題はandroid-menudrawerライブラリに関連しているようです。具体的には、 MapView v2に関するこの問題でも説明されているように、ドロワーを開いた後、ハードウェアアクセラレーションウィジェットが正しく表示されません。

最も基本的な解決策は、マニフェストで設定してハードウェアアクセラレーションを無効 にすることですが、上記の問題の作成者が提案したandroid:hardwareAccelerated="false"のような、より良い解決策を検討することをお勧めします。

簡単なハックを発見しました。

コンテンツプレースホルダーと常に表示される透明なオーバーレイを使用してRelativeLayoutを作成するだけです。コンテンツ内のすべてのクリックイベントは正常に機能し、バグもなくなります。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <FrameLayout
            android:id="@+id/fragment_placeholder"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/transparent" />

</RelativeLayout>
于 2013-02-05T17:54:35.557 に答える