在运行API <11的设备上使用ActionBarSherlock实现全屏模式

5

在运行API <11的设备上,使用ActionBarSherlock进入全屏模式有什么方法吗?

更多信息:

我的应用程序正在使用ActionBarSherlock,在测试不同设备时遇到了问题。

如果我尝试在全屏模式下启动一个活动

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 

在API版本低于11的设备上,会出现以下错误:
 05-29 10:12:54.436: E/AndroidRuntime(1034): FATAL EXCEPTION: main
 05-29 10:12:54.436: E/AndroidRuntime(1034): java.lang.RuntimeException: Unable to   start activity      ComponentInfo{de.osthessennews.osthessennewsapp/com.example.listview.PlayVideo}: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light,   Theme.Sherlock.Light.DarkActionBar, or a derivative.

出现错误是因为清单文件中的行不支持在API&lt; 11上运行的设备。

所以我知道问题的原因,但我不知道如何解决它。希望你们中的某个人能够帮助我。

清单文件片段:

 <application
    android:allowBackup="true"  
    android:icon="@drawable/ic_launcher"       
    android:label="@string/app_name"
    android:theme="@style/Theme.Sherlock" >
    >   
2个回答

14

您可以通过编程实现以下操作:

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView() 方法调用之前使用。


2
添加 "getSupportActionBar().hide()" 以隐藏操作栏。 - touchchandra

5

最新版本的ABS(ActionBar Sherlock)仍然没有Theme.Sherlock.Light.NoActionBar或Theme.Sherlock.Light.NoActionBar.Fullscreen,但您可以通过在代码中以编程方式隐藏ActionBar来创建全屏活动(如上一个答案所述)。

但是,如果您想创建主题或样式,请包含:

<item name="android:windowFullscreen">true</item>

如果只想隐藏安卓系统的状态栏,可以在相关页面进行设置。

如果想要在继承了SherlockActivity或SherlockFragmentActivity的活动中隐藏ActionBar,请按照以下步骤进行代码编写:

getSupportActionBar().hide();

那将给你一个无ActionBar全屏效果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接