1

フラグメント内のWebViewに奇妙な問題があります。水平スクロールが正しく機能しません。少しだけスクロールします。コンテンツを垂直方向にスクロールしたり、ピンチしてズームしたり、ピンチしながら2本の指でページを移動したりすることも、すべての方向で機能します。

これはonCreateView()-WebViewを運ぶフラグメントのメソッドです。WebViewFragmentを使用できません。このフラグメントはViewpager内にあります!提供されたデータは有効なhtml5ドキュメントです。しかし、私は「実際のWebページ」もうまく試していません。

this.mView = inflater.inflate(R.layout.search_results, container, false);
        mWebView = (WebView)this.mView.findViewById(R.id.search_results);
        mWebView.setWebViewClient(new SearchResultsWebViewClient());
        mWebView.setInitialScale(120);
        mWebView.setScrollContainer(true);
        mWebView.bringToFront();
        mWebView.setScrollbarFadingEnabled(true);
        mWebView.setVerticalScrollBarEnabled(true);
        mWebView.setHorizontalScrollBarEnabled(true);
        mWebView.getSettings().setBuiltInZoomControls(true);
        mWebView.getSettings().setJavaScriptEnabled(false);

        mWebView.loadData(this.data, "text/html", "utf-8");

        return this.mView;

これはsearch_results.xmlです

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

そして、フラグメントがロードされるレイアウトファイル

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
        android:baselineAligned="false"
        android:weightSum="1.0">

    <LinearLayout android:layout_weight="0.5"
                    android:layout_width="0dip"
                    android:layout_height="match_parent"
                    android:orientation="vertical" >        
<ListView android:id="@id/android:list"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:background="#000000"
           android:drawSelectorOnTop="false"/>
</LinearLayout>
     <LinearLayout android:layout_weight="0.5"
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:orientation="vertical" >
                <FrameLayout android:id="@+id/resultsWebWiewFragmentFrame"
                      android:layout_width="match_parent" 
                      android:layout_height="match_parent"/>
    </LinearLayout>
</LinearLayout>

ABSを使用しているため、フラグメントをxmlファイルに直接ロードすることはできません。これにより、ClassCastExceptionがスローされます。

4

1 に答える 1

2

私はこれを検索してSOで同じ質問に遭遇しました。この回答をチェックして、それが役立つかどうかを確認してください

彼は次のように付け加えました。

mWebView.getSettings().setUseWideViewPort(true);

ええ、あなたの水平スクロールを消費しているようです、ViewPagerこれらの2つの解決策をチェックしてください。うまくいけば、彼らは助けてくれます。

于 2012-07-26T00:59:43.007 に答える