Chr*_*cía 24 android actionbarsherlock
上下文
我正在使用ActionbarSherlock创建一个包含一些操作项的操作栏.其中一些溢出,因此它们显示在溢出子菜单中.
我的问题
那些溢出的项目仅在文本中显示在子菜单中.
我曾尝试MenuItem.SHOW_AS_ACTION_IF_ROOM与MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT对setShowAsAction(),但都具有相同的行为:

我想要的是
是否可以在溢出子菜单中显示这些项目为<their_icon>+ <their_text>?像这样的东西:

Ari*_*ise 15
我不明白为什么子菜单只能有图标和菜单文本.也许将菜单项作为子菜单添加到根菜单可以帮助您.:)
只是提一下,添加这样的图标会强制你使用ActionBar(Sherlock)而不是在旧版Android中按菜单键时在底部显示菜单的标准方式.
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/root_menu"
android:icon="@drawable/ic_menu_moreoverflow_normal_holo_light"
android:showAsAction="always"
android:title="More">
<menu>
<item
android:id="@+id/menu_settings"
android:icon="@drawable/ic_menu_settings_holo_light"
android:showAsAction="never"
android:title="Settings" />
<item
android:id="@+id/menu_about"
android:icon="@drawable/ic_menu_info_details"
android:showAsAction="never"
android:title="About"/>
</menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
1,在com.actionbarsherlock.internal.view.menu.MenuBuilder.java中将值更改为"mOptionalIconsVisible"的true.然后你会看到图标.仅适用于ActionBarSherlockCompact.java.
2,更改源代码,为MenuBuilder.java和MenuWrapper.java添加api以设置图标.
我有一个解决这种情况的方法.如果您确定要在溢出菜单中放置什么,那么您可以将它们放在子菜单中,并且可以通过覆盖onCreateOptionsMenu方法将该子菜单项的图标和标题与子菜单放在一起.
这是我为实现此功能所做的工作:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 1, "MENU ONE TITLE")
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
SubMenu subMenu = menu.addSubMenu(0, 0, 2, "MENU TWO TITLE");
subMenu.add(0, 2, 2, "SUB MENU ONE TITLE")
.setIcon(R.drawable.sub_menu_one_icon);
subMenu.add(0, 3, 3, "SUB MENU TWO TITLE")
.setIcon(R.drawable.sub_menu_two_icon);
MenuItem subMenuItem = subMenu.getItem();
subMenuItem.setIcon(R.drawable.menu_two_icon);
subMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9280 次 |
| 最近记录: |