1. 程式人生 > >Android中的WebView禁止響應點選事件的方法

Android中的WebView禁止響應點選事件的方法

我們在做Android開發中,有時候需要用到WebView控制元件,當你把WebView新增到佈局中,你希望在點選整個佈局的時候,WebView不接收點選事件,應該向下傳遞。

舉個例子:在ListView中自定義的每一個Item中包含了WebView,你希望點選每一個行能被選中,可是有WebView的存在,點選事件被攔截了,這個時候該怎麼辦呢?

解決方法如下:

繼承WebView自定義一個MyWebView,然後過載它的onTouchEvent方法,就可以解決了。

程式碼如下:

public class MyWebView extends WebView{

	public MyWebView(Context context, AttributeSet attrs, int defStyle,
			boolean privateBrowsing) {
		super(context, attrs, defStyle, privateBrowsing);
		// TODO Auto-generated constructor stub
	}

	public MyWebView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		// TODO Auto-generated constructor stub
	}

	public MyWebView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}

	public MyWebView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
            // TODO Auto-generated method stub
            Log.d("touchevent", "touchevent"+super.onTouchEvent(ev));
//            return super.onTouchEvent(ev);
            return false;
    }
}