我在某些设备上遇到了以下情况:当用户点击字段并期望得到响应时,设备没有正确响应该点击事件,而是在屏幕底部中心显示上下文菜单。
navigationUnclick 和 trackwheelUnclick
从我读过的内容来看,我可以覆盖 navigationUnclick 和 trackwheelUnclick 以防止菜单显示。我将其作为屏幕级别执行,但再现居中菜单场景很困难。这是正确的方法吗?
为什么会这样?有没有办法解决这个问题?
我在某些设备上遇到了以下情况:当用户点击字段并期望得到响应时,设备没有正确响应该点击事件,而是在屏幕底部中心显示上下文菜单。
navigationUnclick 和 trackwheelUnclick
从我读过的内容来看,我可以覆盖 navigationUnclick 和 trackwheelUnclick 以防止菜单显示。我将其作为屏幕级别执行,但再现居中菜单场景很困难。这是正确的方法吗?
为什么会这样?有没有办法解决这个问题?
我最近发生了这种情况。我正在扩展MainScreen
以提供一些基本功能,但不想要上下文菜单。true
从 n返回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 的 override 方法不同onMenu()
,这只会阻止菜单出现这种情况——而不是整个屏幕(您可能想要,这可能是一种更好的方法)。
无论如何,这就是我最近对点击和菜单的体验。
你可以发布你的代码吗?尝试覆盖 trackwheelClick 和 navigationClick 而不是 Unlick 方法。还要确保在这些方法中返回 true。
如果您覆盖 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;
}
}
您可以在 MainScreen 中的所有字段上使用 CONSUME_CLICK 样式...