我在使用带有操作栏的设备时遇到了一些问题。在手机上运行时,我想全屏显示,没有标题栏和状态栏。在平板电脑上我想显示操作栏但仍然没有标题栏。 Minsdk是7!当您切换全屏时,方法 setTheme 不起作用,所以我不能有两个主题。有没有办法在全屏模式下显示操作栏?支持库不支持操作栏。
我首先要这样做的唯一原因是因为他们毫无理由地通过将菜单键移动到操作栏来破坏向后兼容性。根据文档,解决此问题的简单方法是将 android:showAsAction="ifRoom"添加到菜单项。但这绝对没有任何作用。
我还测试了我在谷歌上发现的许多据说可以切换全屏的解决方案。它们都不能在我的任何设备上运行,所以如果您自己没有使用过,请不要指出您已经阅读过的内容。
编辑:我解决了这个问题。问题似乎是您必须指定一个 Holo 主题才能恢复操作栏。否则不会显示。我在我的主要 Activity 中添加了它。
@Override
public void setTheme(int resid) {
if(isTablet(this))
{
super.setTheme(android.R.style.Theme_Holo);
return;
}
super.setTheme(resid);
}
最佳答案
On tablets I want to show the action bar but still no title bar
操作栏取代了标题栏。不存在具有操作栏和标题栏的 Activity 的概念。
Is there a way to show the action bar in fullscreen mode?
据我所知,不,根据定义。
The support library doesn't support the Action bar.
ActionBarSherlock 为 API 级别 7 及更高级别提供操作栏的反向移植。
The easy solution for this according to the docs is to add android:showAsAction="ifRoom" to the menu items. But that does absolutly nothing.
如果您没有操作栏,它肯定“什么都不做”。如果您想要全屏体验,那么您将需要滚动自己的菜单替换。恕我直言,大多数全屏应用程序已经这样做了(例如,带有游戏风格“菜单”的游戏)。
关于Android 主题、全屏和操作栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12569450/