我在某些設備上遇到以下情況:當使用單擊字段並期待響應,而不是正確響應該單擊事件時,設備將在屏幕底部中心顯示上下文菜單。黑莓軌跡球點擊,而不是響應事件,上下文菜單顯示爲什麼?
navigationUnclick和trackwheelUnclick
從我讀過,我可以覆蓋navigationUnclick和trackwheelUnclick防止菜單無法顯示。我這樣做是因爲屏幕級別,但複製居中菜單的場景很困難。這是否正確?
爲什麼會發生這種情況?有什麼辦法可以解決這個問題嗎?
我在某些設備上遇到以下情況:當使用單擊字段並期待響應,而不是正確響應該單擊事件時,設備將在屏幕底部中心顯示上下文菜單。黑莓軌跡球點擊,而不是響應事件,上下文菜單顯示爲什麼?
navigationUnclick和trackwheelUnclick
從我讀過,我可以覆蓋navigationUnclick和trackwheelUnclick防止菜單無法顯示。我這樣做是因爲屏幕級別,但複製居中菜單的場景很困難。這是否正確?
爲什麼會發生這種情況?有什麼辦法可以解決這個問題嗎?
我最近發生了這種情況。我正在擴展MainScreen
以提供一些基本功能,但不需要上下文菜單。從avigationClick()
中刪除此行爲,返回true
。
public class MyScreen extends MainScreen {
protected boolean navigationClick(int status, int time) {
/*
... custom behavior ...
*/
return true;
// the following line would trigger the context menu
//return super.navigationClick(status, time);
}
}
我根本不需要覆蓋navigationUnclick()
。不同於@ JustinD的方法是覆蓋onMenu()
,這隻能防止菜單在這種情況下出現 - 而不是在整個屏幕上(你可能想要的,這可能是更好的方法)。
無論如何,這是我最近使用點擊和菜單的經驗。
你可以發佈你的代碼嗎?嘗試覆蓋trackwheelClick和navigationClick而不是Unlick方法。還要確保你在這些方法中返回true。
如果你重寫onMenu並返回true(你處理菜單事件),那麼菜單不會顯示...假設你不需要完整的菜單 - 如果你想要完整的菜單而不是上下文菜單,那麼只是做什麼揚說,你應該沒事 - 確保返回true或否則事件會冒泡並最終產生菜單
public class MyClass Extends MainScreen
{
///
// Override onMenu to prevent menu from coming up when you click trackwheel
public boolean onMenu(int instance)
{
return true;
}
}
你可以在你的MainScreen使用CONSUME_CLICK風格上的所有字段...
這是偉大的,非常簡潔,完美的作品! – AtariPete 2009-08-22 15:39:19
+1應該注意,雖然返回true指定事件已被使用,並且其他監聽器不應該處理事件。這就是爲什麼菜單不會顯示。 – Fostah 2009-08-27 01:00:00