AppCompat的全屏主题

我想知道如何将全屏主题(无标题栏+无操作栏)应用于活动。 我正在使用支持包v7中的AppCompat库。

我试图应用android:theme="@android:style/Theme.NoTitleBar.Fullscreen"到我的具体活动,但它崩溃。 我认为这是因为我的应用程序主题是这样的。

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

我也试过这个

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

只隐藏标题栏而不是操作栏。 我目前的解决方法是隐藏操作栏

 getSupportActionBar().hide(); 

在应用程序中使用Theme.AppCompat时,可​​以通过将以下代码添加到样式来使用FullScreenTheme。

 <style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light"> <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> 

也在你的清单文件中提到。

 <activity android:name=".activities.FullViewActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen" /> 

根据@nebyan的回答,我发现操作栏仍然没有隐藏。

以下代码适用于我:

 <style name="AppFullScreenTheme" parent="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> 
 <style name="Theme.AppCompat.Light.NoActionBar" parent="@style/Theme.AppCompat"> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">true</item> </style> 

在style.xml中使用上面的xml,你将能够隐藏标题以及操作栏。

Android 4.0(API级别14)版本之前和之后出现的问题

从这里https://developer.android.com/training/system-ui/status.html我创build了我自己的解决scheme..

 @SuppressLint("NewApi") @Override protected void onResume() { super.onResume(); if (Build.VERSION.SDK_INT < 16) { // Hide the status bar getWindow().setFlag(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Hide the action bar getSupportActionBar().hide(); } else { // Hide the status bar getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); / Hide the action bar getActionBar().hide(); } } 

我在onResume()方法中写这段代码,因为如果你退出你的应用程序,然后重新打开它,那么操作栏将保持活动状态! (所以这解决了这个问题)

我希望这是有帮助的;)

你的“解决方法”(隐藏自己的actionBar)是正常的方法。 但谷歌推荐总是隐藏标题栏隐藏时的ActionBar。 看看这里: https : //developer.android.com/training/system-ui/status.html

你可以按照下面的步骤:

AndoridMenifest.xml

 <activity android:name=".ui.FullImageActivity" android:label="@string/title_activity_main" android:screenOrientation="landscape" android:theme="@style/DialogTheme"> </activity> 

Style.xml

 <style name="DialogTheme" parent="android:Theme.Dialog"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">fill_parent</item> <!-- No backgrounds, titles or window float --> <item name="android:windowNoTitle">false</item> <item name="android:windowFullscreen">true</item> <item name="android:windowIsFloating">false</item> </style> 

FullImageActivity.java

 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); setContentView(R.layout.image_view); } 

我希望它会帮助..谢谢!

 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(); } 
 requestWindowFeature(Window.FEATURE_NO_TITLE); 

在AppCompat中删除标题栏:

  @Override protected void onCreate(Bundle savedInstanceState) { supportRequestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); } 
 <style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowFullscreen">true</item> <item name="android:windowContentOverlay">@null</item> 

只是这个 ?

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

这个主题只适用于API 21(含)。 并使StatusBar和NavigationBar都是透明的。

 <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> 

只要在这个家伙你的风格:

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