2012-07-22 62 views
2

我使用onCreateOptionsMenu创建了一个溢出菜单,但菜单几乎完全离开屏幕。我已经明确尝试设置android:anyDensity="true"(如Action bar menu shows off screen中的建议),但这并不能解决我的问题。我也不想遵循使用旧主题的建议(如ICS - menu item text cut off?)。溢出菜单定位错误

截图(图像的右侧是物理屏幕边框;在图像左侧切断由我):
enter image description here

的XML是

 
<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/menu_about" 
      android:title="About" 
      android:icon="@android:drawable/ic_menu_info_details" /> 
    <item android:id="@+id/menu_reset" 
      android:title="Reset image" 
      android:icon="@android:drawable/ic_menu_revert" /> 
    <item android:id="@+id/menu_share" 
      android:title="Share" 
      android:icon="@android:drawable/ic_menu_share" 
      android:showAsAction="ifRoom" /> 
    <item android:id="@+id/menu_facebook_logout" 
      android:title="FB logout" 
      android:icon="@drawable/fbook" 
      showAsAction="ifRoom" /> 
    <item android:id="@+id/menu_save" 
      android:title="Save" 
      android:icon="@android:drawable/ic_menu_save" 
      android:showAsAction="ifRoom" /> 
    <item android:id="@+id/menu_exit" 
      android:title="Exit" 
      android:icon="@android:drawable/ic_menu_close_clear_cancel" /> 
</menu> 

什么我做错了吗?

+0

你为什么不“OR符号中的一些标志'ifRoom'用'withText' 'android:showAsAction'标签? – t0mm13b 2012-07-22 19:28:46

+0

如果您可以创建一个演示此问题的示例项目,我将对其进行审查。 – CommonsWare 2012-07-22 19:29:19

+0

http://stackoverflow.com/questions/8549755/ics-menu-item-text-cut-off?lq=1 – t0mm13b 2012-07-22 19:34:13

回答

2

原来,我仍然有一个

 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, 
        WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 
在我的代码

,以避免在早期的Android版本的bug,(见 Title bar apeared again after coming back in my application)。

删除此项(在冰淇淋三明治中不再需要;尚未尝试其他版本)使溢出菜单正确显示。

0

检查这个确切的解决方案:

Action bar menu shows off screen

似乎这些都应该在清单中添加:

<supports-screens 
     android:anyDensity="false" 
     android:largeScreens="true" 
     android:normalScreens="true" 
     android:xlargeScreens="true" 
     android:resizeable="true" 
     android:smallScreens="true" />