android - 为什么ActionbarSharelock只显示溢出 icon?

  显示原文与译文双语对照的内容
56 2

我在 abs 中的菜单项可见性,甚至在标题中还有空间。我有不同的设备大小测试,但在每个情况下只能看到一个,而且只能看到溢出菜单。

我使用 onPrepareOptionsMenu 来动态管理菜单,并且工作正常。( 但不知道可能是由于 onPrepareOptionsMenu 或者其他原因造成的) 。

视图差异:enter image description hereenter image description here

我用编程方式创建了 Approach,并使用 setShowAsAction() 设置了这种可视性。我找到了 setShowAsActionflag() 也尝试了。但在这种情况下,我无法看到 small screen 320*480 中的溢出菜单。这就是我以编程方式的问题。

下面是我的代码

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
//TODO Auto-generated method stu
//TO Remove older menu otherwise that will apped menu each time.
 menu.clear();
 menu.add(Menu.NONE, MENU_SEARCH, Menu.NONE,"Search").setIcon(R.drawable.ic_search).setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
 menu.add(Menu.NONE, MENU_SETTING, Menu.NONE,"Settings").setIcon(R.drawable.ic_action_settings)
. setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
 if (is_session_exist == 1) {
 menu.add(Menu.NONE, MENU_CHANGE_LOGIN, Menu.NONE,"Change Login").setIcon(R.drawable.ic_action_add_person)
. setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
 menu.add(Menu.NONE, MENU_LOGOUT, Menu.NONE,"Logout").setIcon(R.drawable.abs__ic_clear)
. setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
 } else {
 menu.add(Menu.NONE, MENU_LOGIN, Menu.NONE,"Login").setIcon(R.drawable.ic_action_add_person)
. setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
 }
 return super.onPrepareOptionsMenu(menu);
}

用XML文件夹创建菜单,并将所有属性设置为单独的文件。现在我已经在 onPrepareOptionsMenu 菜单中,但是在这种情况下,我只能看到任何密度屏幕中的溢出,即使我已经设定了android:showAsAction="ifRoom|withText"

这是我的XML代码。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item
 android:id="@+id/mainMenu"
 android:icon="@drawable/abs__ic_menu_moreoverflow_holo_dark"
 android:showAsAction="always">
 <menu>
 <item
 android:id="@+id/menu_search"
 android:icon="@drawable/ic_search"
 android:showAsAction="ifRoom|withText"
 android:title="Search"
 android:visible="true"/>
 <item
 android:id="@+id/menu_login"
 android:icon="@drawable/ic_action_add_person"
 android:showAsAction="ifRoom|withText"
 android:title="Login"
 android:visible="true"/>
 <item
 android:id="@+id/menu_change_login"
 android:icon="@drawable/ic_action_add_person"
 android:showAsAction="ifRoom|withText"
 android:title="Change Login"
 android:visible="false"/>
 <item
 android:id="@+id/menu_setting"
 android:icon="@drawable/ic_action_settings"
 android:showAsAction="ifRoom|withText"
 android:title="Setting"
 android:visible="true"/>
 <item
 android:id="@+id/menu_logout"
 android:icon="@drawable/abs__ic_clear"
 android:showAsAction="ifRoom|withText"
 android:title="Logout"
 android:visible="false"/>
 </menu>
 </item>
</menu>

我正在使用 setVisible(false/true); 更改 onPrepareOptionsMenu 中的菜单项

这里我已经提到了一些有用的链接,但问题仍然没有解决。

设置 android: 以编程方式使用 showasaction="ifroom|withtext"

如何在中添加文本

我不知道为什么我会得到. Your 帮助和努力肯定会很感激。

谢谢你。

时间:原作者:0个回答

51 5

我猜,对于具有屏幕分辨率 320 *480的设备,你不会获得溢出 icon,而是单击设备的菜单按钮以下图像:

enter image description here

原作者:
109 3

你有两个 menu ( 1 ) 嵌套

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item..
">
 <menu>

它应该都是一个带有溢出菜单项的单菜单。自动显示。

更新的菜单 xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item
 android:id="@+id/menu_search"
 android:icon="@drawable/ic_search"
 android:showAsAction="ifRoom|withText"
 android:title="Search"
 android:visible="true"/>
 <item
 android:id="@+id/menu_login"
 android:icon="@drawable/ic_action_add_person"
 android:showAsAction="ifRoom|withText"
 android:title="Login"
 android:visible="true"/>
 <item
 android:id="@+id/menu_change_login"
 android:icon="@drawable/ic_action_add_person"
 android:showAsAction="ifRoom|withText"
 android:title="Change Login"
 android:visible="false"/>
 <item
 android:id="@+id/menu_setting"
 android:icon="@drawable/ic_action_settings"
 android:showAsAction="ifRoom|withText"
 android:title="Setting"
 android:visible="true"/>
 <item
 android:id="@+id/menu_logout"
 android:icon="@drawable/abs__ic_clear"
 android:showAsAction="ifRoom|withText"
 android:title="Logout"
 android:visible="false"/>
 </menu>
原作者:
...