Ich möchte die Statusleiste/Benachrichtigungsleiste im Begrüßungsbildschirm ausblenden. Ich verwende folgenden Stil: <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Diese Dosis verbirgt die Statusleiste nicht. Wie soll ich das tun?
Wenn Sie die Statusleiste entfernen möchten, verwenden Sie diese vor setContentView (Layout) in der onCreateView-Methode
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Verwenden Sie den folgenden Code, um Ihr Problem zu lösen.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Add Below line to hide
getSupportActionBar().hide();
}
Sie können so etwas wie unten beschrieben tun, um das Thema für Ihre jeweilige Aktivität entsprechend einzustellen.
<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>
Probieren Sie diese Komplettlösung aus, um die Android-Version 16 und die vorwärtskompatible Lösung zu verwenden
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);
}
Machen Sie diese Aktivität im Vollbildmodus. Fügen Sie diesen Code in onCreate
dieser Aktivität vor setContentView
ein.
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Das habe ich benutzt und es hat perfekt funktioniert.
Fügen Sie diesen Code zu Ihrer Aktivität onCreate
vor setContentView
hinzu:
@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);
}
Ich habe einen magischen Code geschrieben. Schaltflächen in der Statusleiste können angeklickt werden, dies ist jedoch schwierig. Teil für 4.4 funktioniert nicht gut.
/** Скрывает статус-бар */
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);
}
Versuche dies:
@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);
}