我們在做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;
}
}