2012-11-28 192 views
0

我有一個自定義的WebView,我想模擬一個點擊,當我得到一個MotionEvent.ACTION_DOWN。我不想在WebView上輸入任何內容,我甚至不會讓它可點擊(.setClickable(false))。所以我所做的是重寫我的自定義WebView中的onTouchEvent()以返回false。WebView模擬點擊

這工作正常,但我錯過了點擊。我已經在WebView的源代碼中看到它將消息發送到名爲WebViewCore的類,但是在每個Android版本中,這種通信都是不同的。

有誰知道我該如何以編程方式將點擊發送到webView?

這裏是我想要做的事:

public class VoidWebView extends WebView { 


    public VoidWebView(Context context) { 
     super(context); 

    } 
    public VoidWebView(Context context, AttributeSet attrs) { 
     super(context, attrs); 

    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     if(event.getAction() == MotionEvent.ACTION_DOWN){ 
       //tell the webview that a click has been performed , it doesn't matter where the click happened 

     } 
     return false; 
    } 


} 

回答

3

我認爲你正在尋找View的performClick()方法。

你可以得到更多的信息here

0

向上和向下傳遞事件。

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    int action = event.getAction(); 
    if(action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_UP){ 
     super.onTouchEvent(event); 
     return true; 
    } 
    return false; 
} 
+0

我不想將事件傳遞給超類,這是因爲它會在包含WebView的佈局中導致意外的行爲。這就是爲什麼我需要自己發送點擊消息 – BigBen3216