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

时间:2013-05-29 10:52:37

标签: android actionbarsherlock android-manifest

有没有办法在运行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上运行的设备不支持Manifest中的Line< 11。

所以我知道导致问题的原因,但我不知道如何解决它。我希望你们其中一个人可以帮助我。

Manifest Snipped:

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

2 个答案:

答案 0 :(得分:14)

您可以通过编程方式执行:

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

setContentView()之前使用。

答案 1 :(得分:5)

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

但是如果你想创建一个主题或风格,请包括

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

就可以了,但这只会隐藏Android的状态栏。

隐藏活动中的ActionBar(从SherlockActivity或SherlockFragmentActivity扩展)代码:

getSupportActionBar().hide();

这会给你一个NoActionBar.Fullscreen效果。