我想知道如何应用全屏主题(没有标题栏+没有动作栏)到一个活动。我使用的AppCompat库从支持包v7。

我已经尝试应用android:theme="@android:style/ theme . notitlebar。“全屏”到我的特定活动,但它崩溃了。我想是因为我的应用主题是这样的。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

我也试过这个

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

它只隐藏标题栏,而不隐藏操作栏。 我目前的工作是隐藏的动作栏与

getSupportActionBar().hide();

当前回答

就这个?

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen">
    <item name="android:windowFullscreen">true</item>
</style>

其他回答

requestWindowFeature(Window.FEATURE_NO_TITLE);

它应该是parent="@style/Theme.AppCompat.Light.NoActionBar"

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" 
parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

此主题仅适用于API 21(包含)之后。并使状态栏和导航栏都透明。

<style name="TransparentAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  <item name="windowActionBar">false</item>
  <item name="windowNoTitle">true</item>
  <item name="android:statusBarColor">@android:color/transparent</item>
  <item name="android:windowBackground">@android:color/transparent</item>
  <item name="android:navigationBarColor">@android:color/transparent</item>
  <item name="android:windowIsTranslucent">true</item>
  <item name="android:windowContentOverlay">@null</item>
</style>

你的“变通”(隐藏actionBar自己)是正常的方式。但是谷歌建议当标题栏被隐藏时总是隐藏动作栏。看看这里:https://developer.android.com/training/system-ui/status.html

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //to remove "information bar" above the action bar
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    //to remove the action bar (title bar)
    getSupportActionBar().hide();
}