2010-10-04 34 views

Trả lời

62
mWebView.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return true; 
    } 
}); 

Vô hiệu hóa tất cả các sự kiện liên lạc trên một WebView vì người nghe cảm ứng được thực hiện trước khi hành vi cảm ứng mặc định của WebView. Bằng cách trả lại true sự kiện được tiêu thụ và không được truyền sang số WebView.

Sử dụng android:clickable="false" không tắt các sự kiện chạm.

+0

Sau đó, cách khôi phục các sự kiện? Hãy tưởng tượng tôi phải tạm thời vô hiệu hóa chúng và sau đó kích hoạt lại chúng khi tôi cần. – Hosane

+2

Thực ra, hãy đặt cả 'android: clickable' và longClickable sẽ thực hiện thủ thuật cho chế độ xem web –

1

Nếu tôi đưa bạn đến đúng, bạn chỉ cần ghi đè phương thức onTouchEvent.

+0

Rất có thể điều đó sẽ hiệu quả. Tôi đã tự hỏi nếu có một tài sản hoặc một cái gì đó đơn giản hơn thế. – hpique

+0

Ah Tôi thấy rõ rồi bạn có thể muốn thử cung cấp cho WebView tham số bố cục này android: clickable = "false". Tôi không chắc chắn nếu nó hoạt động nhưng về mặt lý thuyết nó nên như WebView được thừa hưởng từ View. –

+0

Không hoạt động nhưng tôi đã tìm thấy một giải pháp khác mà tôi đã đăng. – hpique

Các vấn đề liên quan