0

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

 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;
    }

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

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

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

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

如果有人可以帮助我,我将非常感激。

4

1 回答 1

1
  1. 不幸的是 SHOW_AS_ACTION_WITH_TEXT 只是一个建议。从个人经验来看,它似乎在横向模式下工作。

  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
        }
    }
    
于 2012-12-31T10:36:56.060 回答