5

有没有办法在运行 API <11 的设备上使用 ActionBarSherlock 进入全屏模式?

更多信息:

我的应用正在使用 ActionBarSherlock,在不同设备上进行测试时,我偶然发现了一个问题。

如果我尝试全屏启动活动

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

在低于 11 的 API 上运行的设备上发生以下错误:

 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 < 11 上运行的设备不支持清单中的行。

所以我知道是什么导致了问题,但我不知道如何解决它。我希望你们中的一个可以帮助我。

清单截图:

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

2 回答 2

14

您可以以编程方式进行:

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

之前使用setContentView()

于 2013-05-29T10:58:37.913 回答
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 效果。

于 2013-06-07T23:04:00.273 回答