2013-09-29 23 views
0

在Android中,可以註冊一個View for context菜單,這樣菜單會在雙擊時顯示,而不是在長按操作被註冊時顯示。我有一個滾動功能的視圖。這個視圖也被註冊爲一個上下文菜單。每當在該視圖上執行滾動並且滾動操作需要一定時間時,長按操作被觸發並且上下文菜單彈出。爲了避免這種情況,我希望在視圖雙擊時顯示上下文菜單,而不是長按按鈕。安卓上下文菜單在雙擊而非longpress上

+0

爲此,您需要設置onTouchListener,然後讓GestureLister監聽DoubleTaps – hakanostrom

+0

好的,所以有一個名爲openContextMenu(View v)的方法用於特定的視圖。然而它在文檔中說,在調用這個方法之前,視圖應該已經通過registerForContextMenu(View v)進行了註冊。由於我必須先註冊視圖,因此上下文菜單也會一直彈出,這是我想要避免的。 – TheBaj

回答

0

對於遇到此問題的任何人。我最終做的是用GestureListener傾聽長時間按壓。一旦長按事件被觸發,我使用registerForContextMenu(View v)爲上下文菜單註冊視圖,然後調用openContextMenu(View v)。爲了不讓上下文菜單彈出並干擾長按事件,我將覆蓋onContextMenuClosed(Menu menu)方法,其中我調用unregisterForContextMenu(View v),傳遞我之前註冊的視圖。