2011-11-15 44 views
0

向webview添加上下文菜單很簡單。但是,默認情況下,僅當您單擊鏈接或圖像時纔會彈出菜單,但不會在常規文本區域中彈出。Android WebView:如何使文本區域的上下文菜單工作?

我發現這One建議將onLongClick添加到該活動,但我試了一下,它根本沒有被擊中。

// -------------------------------------------- -------------------

編輯:

我從我有子類網頁視圖,並覆蓋某些功能相關的問題的提示。我似乎得到了上下文菜單的工作。但是,web視圖並不正常。特別是,我無法再滾動視圖。我想我只是想念一些東西。非常感謝您的幫助。這裏是我的代碼:

public class MyWebView extends WebView { 
    WebViewerActivity _activity; 
    Context _context; 
    GestureDetector _gd; 

    public MyWebView(Context context, AttributeSet attributeSet){ 
     super(context, attributeSet); 
     this._context = context; 
     _gd = new GestureDetector(context, sogl); 
    } 
    public void setActivity(WebViewerActivity activity){ 
     _activity = activity; 
    } 
    @Override 
    public boolean onTouchEvent(MotionEvent ev) { 
     return _gd.onTouchEvent(ev); 
    } 
    GestureDetector.SimpleOnGestureListener sogl = new GestureDetector.SimpleOnGestureListener(){ 
     public boolean onDown(MotionEvent event) 
     {    
      return true;   
     }   
     public void onLongPress(MotionEvent event) 
     {    
      _activity.onLongClick(MyWebView.this); 
     } 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {   
     MyWebView.this.scrollBy((int)distanceX, (int)distanceY); 
     return true; 
    } 
    }; 
}  

// ------------------------------------ ---------------------------

多個編輯:

好的,我加入onScroll的倍率到SimpleOnGestureListener如上所示,它使webview滾動工作。但是,如果您將它滾動到外面太遠,則webview的原始滾動會自動彈回。但是,這種滾動並沒有這個好的功能。任何想法如何解決這個問題?

+0

找到答案? – alexl

回答

0

嘗試使用WebView註冊onLongClickListener。該視圖可能正在使用該事件並且不會將其傳遞迴活動。我認爲當前工作菜單是通過使用Activity.registerForContextMenu()註冊WebView創建的?

+0

非常感謝您的回答。其實,我也嘗試過,也沒有受到影響。是的,我的上下文菜單是通過Activity.registerForContextMenu(webView)創建的。 – newman

相關問題