2015-01-07 3 views
9

Ich habe eine WebView in meiner Anwendung, die HTML-Inhalt darin gerendert hat und die Größe des HTML-Inhalts ist größer als die Größe von WebView. Der Inhalt scrollt darin, wenn der Benutzer seinen Finger darauf zieht. Ich möchte dieses INTERNE Scrollen mit Inhalt stoppen.Wie INTERNE Scrolling von WebView in Android zu stoppen?

Heres, was ich schon bisher versucht:

WebView view = new WebView(context); //context is of Activity 
view.setHorizontalScrollBarEnabled(false); 
view.setVerticalScrollBarEnabled(false); 
view.setScrollContainer(false); 

und in CSS als:

overflow : hidden !important; 

freundlichen Lösungen vorschlagen, außer Deaktivieren Finger Drag (Hack) für Webansicht, weil das meine stören andere Funktionalität, die wie folgt ist:

@Override 
public boolean onTouch(View view, MotionEvent motionEvent) { 
    if(motionEvent.getAction() == MotionEvent.ACTION_MOVE) 
    { 
     return true; 
    } 
    } 
+0

Sie [hier] (http://stackoverflow.com/a/5274400/4419437) ich hoffe, das wird Ihnen helfen :) –

+0

@asimmahmoodKhan ich alle diese Lösungen in meiner Frage erwähnt haben. Bitte zuerst prüfen. Danke :) – Perry

+0

[hier klicken] (http://Stackoverflow.com/a/8654192/4419437) Ich denke, dass es dieser Code Ihnen helfen wird. Für den letzten Kommentar :) –

Antwort

4

Fügen Sie einen Container zu Ihrem webview, die alle Ihre Inhalte wickelt und sitzt direkt unter dem body Element, etwa so:

<body id="myBody"> 
    <div class="container"> 
    <!-- All your content goes in this new div.container --> 
    </div> 
</body> 

Dann fügen Sie diese CSS auf Ihre Seite:

body { 
    height: 100%; 
    width: 100%; 
    pointer-events: none; 
} 
div.container { 
    overflow: hidden!important; 
    height: 100%; 
    width: 100%; 
} 

Das Problem ist, dass Ein WebView scheint das Scrollen auf dem body trotz Überlaufregeln zu ignorieren, und da ein body erweitert, um seinen Inhalt zu erfüllen, wird es immer denken, dass es mehr zu scrollen gibt. Dadurch wird der Rumpf auf die Größe von WebView zurückgesetzt, und der Container wird dann verwendet, damit der Körper nicht über WebView mit mehr Inhalt hinaus expandiert.

Hoffe, dass hilft.

+0

Ja @Josh Burgess, das funktioniert sicherlich !!! Auch ich habe das gleiche zuletzt getan, als ich nichts in Android (JAVA) gefunden habe. Ich habe nur vergessen hier zu posten. Danke eine Tonne Kerl :) :) :) – Perry

+0

Hy, ich habe Ihre Lösung versucht und in der Tat stoppt die Scroll mit dem folgenden Befehl: Überlauf: versteckt! Wichtig; aber das Problem ist, dass mein html ein fließender Text ist, und ich horizontal paging mache, damit der Benutzer die Seiten horizontal umdrehen kann. Dieser Befehl schneidet die Datei so, dass der Rest des HTML-Dokuments abgeschnitten wird. Ich möchte, dass ich nur den vertikalen Bildlauf anhalten kann. – coder

+0

@coder dann tun 'overflow-y: versteckt' stattdessen. –