Blackberry 黑莓轨迹球点击,而不是响应事件,上下文菜单显示为什么?
我在一些设备上遇到了以下情况:当用户单击字段并期望响应时,设备不会正确响应该单击事件,而是在屏幕的底部中央显示上下文菜单 导航解锁和履带轮解锁Blackberry 黑莓轨迹球点击,而不是响应事件,上下文菜单显示为什么?,blackberry,menu,events,contextmenu,Blackberry,Menu,Events,Contextmenu,我在一些设备上遇到了以下情况:当用户单击字段并期望响应时,设备不会正确响应该单击事件,而是在屏幕的底部中央显示上下文菜单 导航解锁和履带轮解锁 根据我所读的内容,我可以覆盖navigationUnclick和trackwheelUnclick以防止菜单显示。我是在屏幕级别这样做的,但是复制居中菜单场景是很困难的。这是正确的方法吗 为什么会发生这种情况?有什么办法解决这个问题吗?你能发布你的代码吗?尝试覆盖trackwheelClick和navigationClick,而不是取消锁定方法。也要确保
根据我所读的内容,我可以覆盖navigationUnclick和trackwheelUnclick以防止菜单显示。我是在屏幕级别这样做的,但是复制居中菜单场景是很困难的。这是正确的方法吗
为什么会发生这种情况?有什么办法解决这个问题吗?你能发布你的代码吗?尝试覆盖trackwheelClick和navigationClick,而不是取消锁定方法。也要确保在这些方法中返回true。如果覆盖onMenu并仅返回true(您处理了menu事件)然后菜单将不会显示…假设您也不需要完整的菜单-如果您想要完整的菜单而不是上下文菜单,那么按照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;
}
}
我最近遇到了这种情况。我扩展了
MainScreen
以提供一些基本功能,但不需要上下文菜单。从navigationClick()返回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使用overrideonMenu()
的方法不同,这只会防止菜单出现在特定情况下,而不会出现在整个屏幕上(这可能是您想要的,这可能是更好的方法)
无论如何,这是我最近在单击和菜单方面的经验。您可以在主屏幕中的所有字段上使用CONSUME\u CLICK样式…+1应该注意的是,返回true表示事件已被使用,其他侦听器不应处理该事件。这就是菜单不会显示的原因。