2012-09-24 53 views
2

我有一些设备有问题的操作栏。在手机上运行时,我想全屏显示,没有标题栏和状态栏。在平板电脑上,我想显示操作栏,但仍然没有标题栏。明斯克是7!切换全屏时,setTheme方法不起作用,所以我不能拥有两个主题。有没有办法以全屏模式显示操作栏?支持库不支持操作栏。Android主题,全屏和动作栏

我想首先做这件事的唯一原因是因为他们没有任何理由,通过将菜单键移动到操作栏来打破向后兼容性。根据文档,这个简单的解决方案是将android:showAsAction =“ifRoom”添加到菜单项。但绝对没有什么。

我也测试了很多我在谷歌上找到的解决方案,它应该是全屏切换。它们都不适用于我的任何设备,因此如果您没有自己使用它,请不要指向您已阅读的内容。

编辑:我解决了这个问题。问题似乎是,你必须指定一个Holo主题来获取操作栏。否则它不会显示。我在主要活动中添加了这个。

@Override 
public void setTheme(int resid) { 
    if(isTablet(this)) 
    { 
     super.setTheme(android.R.style.Theme_Holo); 
     return; 
    } 
    super.setTheme(resid); 
} 

回答

2

在平板电脑上我要显示操作栏,但仍然没有标题栏

动作栏取代标题栏。没有一个活动的概念具有标题栏的动作条

有没有办法在全屏模式下显示操作栏?

AFAIK,根据定义。

支持库不支持操作栏。

ActionBarSherlock提供API级别7和更高的操作杆的反向移植。

根据文档的简单解决方案是将android:showAsAction =“ifRoom”添加到菜单项。但绝对没有什么。

如果您没有操作栏,它肯定“无所作为”。如果你想要全屏体验,那么你将需要推出自己的菜单替换。恕我直言,大多数全屏应用程序已经做到了这一点(例如,游戏与游戏风格的“菜单”)。

+0

标题栏并未被操作栏取代。我可以看到标题栏。你把它与我所想的状态栏混淆了。我不会添加任何第三方的东西。我宁愿放弃平板电脑的支持。和你最后的声明。我实际上认为它会出现在系统栏中,因为短版本的文档说明您只需将属性添加到菜单项以添加平板电脑支持。当我设置主题以显示它时(在清单中),它已经在操作栏中起作用了。那么解决方案是什么?去第三方还是放弃它? – Fdk2000

+1

@ Fdk2000:“标题栏并未被操作栏取代” - 是的,它在API Level 11及更高版本上。 “我实际上认为它会出现在系统栏中,因为文档的简短版本声明您只需将属性添加到菜单项以添加平板电脑支持” - 只有当您拥有操作栏时。菜单出现在系统栏中的唯一方法是如果您的'targetSdkVersion'小于11. – CommonsWare

+0

谢谢!这清除了一些混淆。 – Fdk2000