WebView水平滚动失败

时间:2012-07-26 00:27:08

标签: android android-webview android-viewpager

我在片段中遇到了一个奇怪的问题。水平滚动无法正常工作。它只滚动了一下。没有问题,垂直滚动内容,捏缩放,是的,用两根手指移动页面,同时捏合也可以在所有方向上工作。

这是onCreateView() - Fragment的方法,它携带WebView。我不能使用WebViewFragment。 这个片段在Viewpager中!提供的数据是有效的html5文档。但我还没有成功尝试过“真正的网页”。

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。

1 个答案:

答案 0 :(得分:2)

我刚刚搜索了这个并在SO check out this answer and see if that helps上遇到了同样的问题。

他补充说:

mWebView.getSettings().setUseWideViewPort(true);

是的,似乎ViewPager消耗了你的水平滚动,请查看这两个解决方案。希望他们有所帮助。