我想知道如何将全屏主题(没有标题栏+没有操作栏)应用于某个活动。我正在使用支持包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();
答案 0 :(得分:780)
在应用程序中使用Theme.AppCompat时,可以使用FullScreenTheme将下面的代码添加到样式中。
<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>
并在您的清单文件中提及。
<activity
android:name=".activities.FullViewActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
/>
答案 1 :(得分:62)
基于@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>
当然不要忘记编辑AndroidManifest
文件。
<activity
android:name="YOUR_ACTIVITY_NAME"
android:theme="@style/AppFullScreenTheme"
/>
答案 2 :(得分:17)
<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,您将能够隐藏标题和操作栏。
答案 3 :(得分:9)
Android 4.0之前和之后版本(API级别14)出现问题。
来自here的我创建了自己的解决方案。
@SuppressLint("NewApi")
@Override
protected void onResume()
{
super.onResume();
if (Build.VERSION.SDK_INT < 16)
{
// Hide the status bar
getWindow().setFlags(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()方法中编写此代码,因为如果您退出应用程序然后重新打开它,操作栏将保持活动状态! (所以这解决了问题)
我希望它有用;)
答案 4 :(得分:6)
您的“解决方法”(自己隐藏actionBar)是正常的方法。但谷歌建议在隐藏标题栏时始终隐藏ActionBar。看看这里:https://developer.android.com/training/system-ui/status.html
答案 5 :(得分:6)
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();
}
答案 6 :(得分:4)
您可以按照以下步骤操作: -
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);
}
我希望它会有所帮助。谢谢!!
答案 7 :(得分:2)
它应该是 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>
答案 8 :(得分:1)
requestWindowFeature(Window.FEATURE_NO_TITLE);
答案 9 :(得分:0)
删除AppCompat中的标题栏:
@Override
protected void onCreate(Bundle savedInstanceState) {
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
}
答案 10 :(得分:0)
<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>
答案 11 :(得分:0)
就是这个?
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen">
<item name="android:windowFullscreen">true</item>
</style>
答案 12 :(得分:0)
此主题仅适用于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>
答案 13 :(得分:0)
简单地说这个家伙为你的风格:
<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>
答案 14 :(得分:0)
要隐藏状态栏和操作栏并使活动全屏显示,请在活动的onResume()
或onWindowFocusChanged()
方法中使用以下代码:
@Override
protected void onResume() {
super.onResume();
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
}
您可以在以下链接中找到更多信息:
注意:使用该线程提供的xml解决方案,我只能隐藏状态栏,而不能隐藏导航栏。
答案 15 :(得分:0)
您可以尝试以下:
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowFullscreen">true</item>
</style>