2013-06-11 10 views
8

Ich habe ein Problem mit dem WebView. Ich öffne eine Webseite in diesem WebView und es wird nicht in Android 2.x, aber es wird in Android 3.x + blättern.WebView wird nicht in Android 2.x scrollen

Jede Idee, was kann ich tun, um das zu beheben?

Dies ist die Konfiguration i für diese WebView verwenden:

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

Und im Layout:

<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

Ist dies der Fall für alle Websites, die Sie versuchen, oder nur für diese bestimmte Seite? –

+0

Es ist für eine Site. – Styler2go

+1

Möglicherweise ist es etwas in der Javascript oder Css der Website, die nicht von älteren Browsern unterstützt wird. Versuchen Sie es mit dem nativen Browser auf dem älteren Gerät. Funktioniert es dort? Ich habe das Gefühl, es ist nicht dein Code ... –

Antwort

2

Im Fall, wenn Sie immer noch Probleme

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"); 

im Fall, wenn Sie ProgressBar, während die Seite noch zeigen möchten ist Verwendung Laden

 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); 

      } 

     }); 

hoffe, das hilft ...

2

Was passiert, wenn Sie versuchen, dies zu setzen:

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

Sie könnten Versuchen Sie, Ihre Webansicht in scrollview einzuschließen:

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

6

Etwas in der CSS oder Javascript dieser Seite wird nicht von älteren Android-Browsern unterstützt, es ist nicht mit Ihrem Code verwandt.

Es ist ein wenig zu weit gefasst, um definitiv zu antworten - Sie müssen Ihre Website auf Kompatibilität mit verschiedenen Browsern testen. Wenn Sie bestimmte Bibliotheken auf Ihrer Site verwenden, müssen Sie deren Kompatibilität prüfen.

Hier sind einige Links, die helfen können:

+0

Kann ich nicht unterstützte Funktionen löschen, die ich scrollen kann? Einige Elemente sind fixiert. Das könnte das Problem sein. – Styler2go

+0

Sicher. Wirklich die einzige Möglichkeit ist hoffentlich, dass Sie die Möglichkeit haben, die Seite zu ändern, Sie müssen es ausprobieren und ein wenig falsch machen. Unmöglich zu sagen, was es von hier aus verursacht! –

+0

Wenn dies nicht meine Site ist, wie kann ich den HTML-Code auf dem Gerät bearbeiten? – Styler2go

1

XML-Scrollview zu verwenden, anstatt ändern. Wird funktionieren.

<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

Es gibt viele Verbesserungen sind gekommen in 3x +, gibt es zu viele Einschränkungen von android webview http://androiddeveloperuser.blogspot.in/2011/05/webview-part-1-capabilities-and.html

hier i Vergangenheit kurze Linie werde von einem Android-Blog geschrieben enthalten geschrieben über die Begrenzung und Vorteil

Es gibt viele Ereignisse, die abgefangen werden können, und es gibt Einschränkung in welchem ​​Verhalten überlastet werden können, die die Anpassung dieser Komponente begrenzt und ändern das Standardverhalten von diese Komponente schwierig.

Verwandte Themen