
我正在使用onPrepareOptionsMenu来动态管理我的菜单,并且工作正常.(但不知道可能是这个问题发生在byPrepareOptionsMenu或其他一些原因).
查看差异:
第一种方法我已经以编程方式创建菜单,并使用setShowAsAction()设置该可见性.在某处我也找到了setShowAsActionflag(),我也试过了.但在这种情况下,我无法在小屏幕320 * 480中看到溢出菜单.所以,这是我在编程方法上的问题.
这是我的代码
@OverrIDepublic 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,"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,"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,"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,"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中的菜单项;
这里有一些有用的链接,我已经提到但问题尚未解决.
Set android:showAsAction=”ifRoom|withText” programmatically
How to add text to icons in ActionBar?
我不知道为什么我会得到这个问题.你的帮助和努力肯定会升值.
谢谢.
解决方法 我想,对于屏幕分辨率为320 * 480的设备,您不会获得溢出图标,而是单击设备的菜单按钮,您可以获得其余菜单项,如下图所示: 总结以上是内存溢出为你收集整理的android – 为什么ActionbarSharelock只显示溢出图标,即使有空间全部内容,希望文章能够帮你解决android – 为什么ActionbarSharelock只显示溢出图标,即使有空间所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)