【问题标题】:action item is not displayed in the actionbar操作项未显示在操作栏中
【发布时间】:2012-12-15 11:49:29
【问题描述】:

无论我做什么,文本都不会与图像一起显示在操作项中。有人可以帮我解决这个问题。这几天一直在为此苦苦挣扎。

 public boolean onCreateOptionsMenu(Menu menu) {


             SubMenu subMenu1 = menu.addSubMenu("Types");
                subMenu1.add("type-1");
                subMenu1.add("type-2");
                subMenu1.add("type-3");

                MenuItem subMenu1Item = subMenu1.getItem();
                subMenu1Item.setIcon(R.drawable.down_arrow);
                subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);



        return true;
    }

在上面的代码中,“Types”文本没有与图标一起显示。仅显示图标。如果我删除 subMenu1Item.setIcon(R.drawable.down_arrow); 行,则会显示文本。但我两者都想要。在这里,我将子菜单项添加到操作项,以便获得下拉菜单。

由于我没有得到这个question 的建议,我决定至少按照这种方式添加子菜单项。这里我有两个问题。

1)如何使文本与图标一起可见。

2)如何监听子菜单的点击,即我们如何知道子菜单何时被点击。当Item被点击时,我们可以在onOptionsItemSelected(MenuItem item)中监听,但是子菜单项是什么情况呢?

如果有人能在这方面帮助我,我将非常感激。

【问题讨论】:

    标签: android menu actionbarsherlock


    【解决方案1】:
    1. 很遗憾,SHOW_AS_ACTION_WITH_TEXT 只是一个suggestion。不过从个人经验来看,它似乎可以在横向模式下工作。

    2. 您也可以在 onOptionsItemSelected() 中收听子菜单项

      subMenu1Item.add(GROUP_ID, ITEM_ID, ORDER, "type-1");
      
      // ...
      
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
            case ITEM_ID: // do something
          }
      }
      

    【讨论】:

    • 是的。我在横向模式下没有问题。我有肖像模式的问题。即使在纵向模式下,我也会收到图标和稍后的文字。但我需要文字和稍后的图标。请建议。 ActionProvider 有什么用?也可以在actionbarsherlock中实现吗?
    • 是的,ActionBarSherlock 有自己的 Action Provider 类,看看examples
    • 谢谢。您知道如何更改子菜单项(在我的情况下为 type-1、type-2 ...)背景吗?由于我的屏幕是白色的,因此具有白色背景(默认)的子菜单项几乎不可见。由于时间因素,我决定用跳过图标来完成它。
    • 你可以通过设置theme in styles.xml来改变背景。
    • 非常感谢。你能回答我的第二个问题吗?
    猜你喜欢
    • 2015-05-09
    • 2014-07-09
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多