有没有办法在运行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" >
>
答案 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效果。