我想在启动画面中隐藏状态栏/通知栏我正在使用样式:<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
这个剂量不能隐藏状态栏,我该怎么做?
如果要删除状态栏,请在onCreateView方法中的setContentView(layout)之前使用它
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
您可以执行以下操作,以便在特定活动中正确设置主题 -
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/launch_theme</item>
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
</style>
使用以下代码解决您的问题。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Add Below line to hide
getSupportActionBar().hide();
}
尝试这个完整的解决方案,以便在Android版本16和转发兼容的解决方
if (Build.VERSION.SDK_INT < 16)
{
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
else
{
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
要使您的活动全屏,请在onCreate
之前在setContentView
中添加此代码:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
试试这个:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
我做了一些神奇的代码。可以单击状态栏中的按钮,但这很困难。 4.4的部分效果不佳。
/** Скрывает статус-бар */
private void hideStatusBar(View decorView)
{
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
android.app.ActionBar actionBar = getActionBar();
if (actionBar != null)
actionBar.hide();
}
@Override protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try
{
// for < 4.0
if (Build.VERSION.SDK_INT < 16)
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
// for > 4.0
else
{
final View decorView = getWindow().getDecorView();
hideStatusBar(decorView);
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener()
{
@Override public void onSystemUiVisibilityChange(int visibility)
{
if (visibility != View.SYSTEM_UI_FLAG_FULLSCREEN)
hideStatusBar(decorView);
}
});
}
}
catch (Throwable t)
{
Util.log("Ошибка при попытке свернуть статус бар");
t.printStackTrace();
}
setContentView(R.layout.activity_main);
}
这是我使用的,它完美地工作。
在onCreate
之前将此代码添加到您的活动setContentView
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
在Manifest文件中更新您的活动风格主题@style/Theme.AppCompat.Light.NoActionBar
。
<activity
android:name=".Activity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
</activity>