Note that there are some explanatory texts on larger screens.

plurals
  1. POHandle Touch Events inside WebView in android
    text
    copied!<p>I had created WebView that loads html files from the asset folder. Now when i am going to put GestureDetecter in that WebView it stops working ScrollView &amp; links inside html page. but when i removes GestureDetecter both ScrollView &amp; links works fine.</p> <p>Following is my complete code,</p> <p>(I have used two html files 1.html &amp; 2.html, you can use any html files instead of it which can allows scrolling and put both files into asset folder)</p> <pre><code>import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.GestureDetector; import android.view.MotionEvent; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.LinearLayout; public class DemoWebViewActivity extends Activity { private MyWebView mWebView; private WebViewClient client; private LinearLayout lymain; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); lymain = new LinearLayout(getApplicationContext()); lymain.setOrientation(1); mWebView = new MyWebView(getApplicationContext()); mWebView.setWebViewClient(client); mWebView.setVerticalScrollBarEnabled(false); mWebView.loadUrl("file:///android_asset/1.html"); lymain.addView(mWebView); setContentView(lymain); } class MyWebView extends WebView { Context context; GestureDetector gd; public MyWebView(Context context) { super(context); // TODO Auto-generated constructor stub this.context = context; gd = new GestureDetector(context, sogl); } public boolean onTouchEvent(MotionEvent event) { return (gd.onTouchEvent(event) || super.onTouchEvent(event)); }; GestureDetector.SimpleOnGestureListener sogl = new GestureDetector.SimpleOnGestureListener() { public boolean onDown(MotionEvent event) { return true; } public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) { if (event1.getRawX() &gt; event2.getRawX() &amp;&amp; StrictMath.abs(event1.getRawY()-event2.getRawY())&lt;100) { mWebView.loadUrl("file:///android_asset/2.html"); } else if(event1.getRawX() &lt; event2.getRawX() &amp;&amp; StrictMath.abs(event1.getRawY()-event2.getRawY())&lt;100){ mWebView.loadUrl("file:///android_asset/1.html"); } else { } return true; } }; } } </code></pre> <p>Any Help would be greatly appreciated. Thanks!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload