2013-06-11 21 views
8

WebViewに問題があります。 このWebViewでWebページを開き、Android 2.xではスクロールしませんが、Android 3.x +でスクロールします。Android 2.xでWebViewがスクロールしない

任意のアイデアこれを修正するには何ができますか?

これは私がこのWebViewのために使用した構成である。

wView = (WebView) findViewById(R.id.webView1); 
wView.getSettings().setJavaScriptEnabled(true); 
wView.setHorizontalScrollBarEnabled(true); 

とレイアウトで:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#00000000" 
    tools:context=".MainActivity" 
    android:orientation="vertical"> 

    <WebView 
     android:id="@+id/webView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scrollbars="horizontal" /> 

</LinearLayout> 
+0

これは、試したすべてのサイトまたはこの特定のページのケースですか? –

+0

1つのサイト用です。 – Styler2go

+1

これは、古いブラウザではサポートされていない可能性があるサイトのjavascriptまたはcssにあります。古いデバイスのネイティブブラウザでテストを試してみてください。それはそこで働くのですか?私はそれがあなたのコードではないと感じている... –

答えて

2

ページはまだ

 ProgressBar pb = (ProgressBar).findViewById(R.id.webview_progressBar1); 

    wv.setWebViewClient(new WebViewClient() { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       return super.shouldOverrideUrlLoading(view, url); 
      } 

      @Override 
      public void onPageFinished(WebView view, String url) { 

       super.onPageFinished(view, url); 

       pb.setVisibility(View.INVISIBLE); 

      } 

      @Override 
      public void onPageStarted(WebView view, String url, Bitmap favicon) { 

       super.onPageStarted(view, url, favicon); 

       pb.setVisibility(View.VISIBLE); 

      } 

     }); 

は、このことができます願ってい 使用をロードしている間、プログレスバーを表示したい場合、あなたはまだ場合

WebView wv = (WebView) v.findViewById(R.id.webview); 
    wv.getSettings().setSupportZoom(true); 
    wv.getSettings().setBuiltInZoomControls(true); 
    wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    WebSettings settings = wv.getSettings();   
    settings.setUseWideViewPort(true); 
    settings.setJavaScriptEnabled(true); 
    settings.setSupportMultipleWindows(true); 
    settings.setJavaScriptCanOpenWindowsAutomatically(true); 
    settings.setLoadsImagesAutomatically(true); 
    settings.setLightTouchEnabled(true); 
    settings.setDomStorageEnabled(true); 
    settings.setLoadWithOverviewMode(true); 
    wv.loadUrl("http://www.google.com"); 

問題がある場合は...

2

あなたがこれを設定してみたらどう:

wView.getSettings().setUseWideViewPort(true); 
2

あなたは可能性がありスクロールビュー内でウェブビューを囲むようにしてください:

<LinearLayout ...... > <HorizontalScrollView ..... > <WebView .... /> </HorizontalScrollView> </LinearLayout>

6

そのサイトのCSSまたはjavascriptの中には、古いAndroidブラウザではサポートされていないものもありますが、これはあなたのコードとは関係ありません。

確かに答えが多すぎます。異なるブラウザでサイトをテストする必要があります。サイトで特定のライブラリを使用している場合は、互換性を確認する必要があります。

+0

私はスクロールできるサポートされていない機能を削除できますか?いくつかの要素の位置が固定されています。それが問題になる可能性があります。 – Styler2go

+0

本当に唯一の選択肢は、あなたがサイトを変更する能力を持っていればうまくいけば、試行錯誤する必要があります。ここから何が起こっているのかを確かめることはできません! –

+0

これは私のサイトでない場合、どのようにデバイス上のHTMLを編集できますか? – Styler2go

1

代わりにScrollViewを使用するようにXMLを変更します。ここでは

は助けるかもしれないいくつかのリンクがあります。働くでしょう。アンドロイドのWebViewの

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#00000000" 
tools:context=".MainActivity" 
android:orientation="vertical"> 

    <ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
     <WebView 
     android:id="@+id/webView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scrollbars="horizontal" /> 
    </ScollView> 
</LinearLayout> 
1

は改善の多くは3倍+に来ているがあり、そこにあまりにも多くの制限は、私は1つのアンドロイドブログで書か含むの過去の短い線に行きますここ http://androiddeveloperuser.blogspot.in/2011/05/webview-part-1-capabilities-and.html

は制限と利点について書か

傍受することができない多くのイベントがあり、この成分の カスタマイズを制限する行動が過負荷にすることができるもので 制限がありますこのコンポーネントのデフォルト動作を のコンポーネントに変更するのは困難です。場合

関連する問題