我实现了ActionBarCompat以在不同的OS版本中拥有ActionBar 它隐藏在智能手机上,仅在平板电脑上显示。
我在此屏幕截图中看到:http://developer.android.com/resources/samples/ActionBarCompat/index.html,分享选项菜单会在子菜单中显示注销选项,但是当我编译并运行示例时平板电脑上的代码,退出选项已完全隐藏,并且没有任何选项可将其显示为子菜单
然后我尝试做这样的事情:
<item
android:icon="@android:drawable/ic_menu_delete"
android:orderInCategory="1"
android:showAsAction="always"
android:title="@string/menu_logout">
<menu>
<item
android:id="@+id/menu_logout"
android:title="@string/menu_logout"/>
</menu>
</item>
它真的看起来我想要的 - 在平板电脑上,在智能手机上,但它有一个不希望的效果 - 当点击退出选项菜单时,它显示另一个上下文菜单,这是因为我相信嵌套菜单。
你知道吗,在平板电脑上使用动作栏时如何显示子菜单,在智能手机上只显示常规选项菜单?也许ActionBarCompat需要一些额外的配置?
答案 0 :(得分:1)
我找到了解决方案。 该解决方案包括2个单独的菜单资源文件,用于平板电脑和智能手机:menu_tablet.xml,menu_smartphone。
对于平板电脑,我会显示一个子菜单:
<item
android:icon="@android:drawable/ic_menu_delete"
android:orderInCategory="1"
android:showAsAction="always"
android:title="@string/menu_logout">
<menu>
<item
android:id="@+id/menu_logout"
android:title="@string/menu_logout"/>
</menu>
</item>
对于智能手机,我显示为常规选项菜单:
<item
android:icon="@android:drawable/ic_menu_delete"
android:orderInCategory="1"
android:showAsAction="always"
android:id="@+id/menu_logout"
android:title="@string/menu_logout" />
然后在代码中我膨胀相应的菜单资源:
if(isTablet()){
menuInflater.inflate(R.menu.menu_tablet, menu);
}else{
menuInflater.inflate(R.menu.menu_smartphone, menu);
}