【问题标题】:Overflow menu not showing on Samsung Galaxy S4三星 Galaxy S4 上未显示溢出菜单
【发布时间】:2016-02-21 19:02:59
【问题描述】:

我遇到了一个奇怪的问题,即溢出菜单没有出现在三星 Galaxy S4 设备上。我正在使用默认的 Android 操作栏(即,我将命令直接添加到表单中)。我没有明确定义/更改 commandBehavior 主题常量。

其次,我注意到我通过colors.xml 应用的操作栏颜色,如here 所解释的那样没有生效(比较附加的“预期”和实际的屏幕截图)。

任何帮助将不胜感激。

预计(索尼 Xperia Z3):

实际(三星 S4):

【问题讨论】:

  • 您是如何添加溢出菜单项的?
  • @Diamond: f.addCommand(myCommand) 在 Android 上有效地使用了 ActionBar API。它确实适用于某些设备,但不适用于三星 S4(也许还有其他设备?)...

标签: codenameone


【解决方案1】:

beforeShowForm() 方法中插入以下代码。它将添加溢出菜单并在actionperformed 方法中添加您的事件。

Toolbar toolbar = new Toolbar();
f.setToolbar(toolbar);
toolbar.addCommandToOverflowMenu(new Command("Test") {

  @Override
     public void actionPerformed(ActionEvent evt) {
         // its event
  }
});

【讨论】:

  • 我不想使用 Toolbar API,因为默认的外观在 Android 上并不酷(与 ActionBar 相比),而且我不愿意花时间样式来获得默认外观。已经在其他地方与 Shai 讨论过这个问题,他同意这是有待改进的地方。但回到我最初的问题,溢出菜单应该简单地显示在所有支持 ActionBar Android API 的 Android 设备上,所以我仍然认为这是一个错误。
  • 我还没有测试colors.xml。当你得到它的解决方案时,我觉得工具栏和更新很容易使用
  • 我同意我们需要改进默认外观,但我会花时间使用工具栏 API。它是一个更好的方向。三星设备中的本机菜单隐藏在菜单按钮中,因此您不会看到溢出菜单。据我所知,colors.xml 仅适用于较新版本的 Android(从 Lollipop 开始)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
相关资源
最近更新 更多