我在某些设备上遇到以下情况:当使用点击字段并期望响应时,设备会在屏幕底部中央显示上下文菜单,而不是正确响应该点击事件。 / p>
navigationUnclick和trackwheelUnclick
根据我的阅读,我可以覆盖navigationUnclick和trackwheelUnclick以防止菜单显示。我这样做是作为屏幕级别但是重现中心菜单场景很困难。这是正确的approch吗?
为什么会这样?有什么方法可以解决这个问题吗?
答案 0 :(得分:6)
我最近发生了这种情况。我正在扩展MainScreen
以提供一些基本功能,但不想要上下文菜单。从true
返回avigationClick()
已删除此行为。
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()
的方法不同,这只会阻止菜单出现在这种情况下 - 而不是整个屏幕(您可能想要的,这可能是更好的方法)。
无论如何,这是我最近对点击和菜单的体验。
答案 1 :(得分:1)
你可以发布你的代码吗?尝试覆盖trackwheelClick和navigationClick而不是Unlick方法。还要确保在这些方法中返回true。
答案 2 :(得分:1)
如果你覆盖onMenu并且只返回true(你处理了菜单事件)那么菜单就不会显示...假设你不需要一个完整的菜单 - 如果你想要完整的菜单而不是上下文菜单那么只是做Jan所说的,你应该没问题 - 确保返回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;
}
}
答案 3 :(得分:0)
您可以在MainScreen中的所有字段上使用CONSUME_CLICK样式...