UPDATE: Schließlich finden Sie ein bisschen Hacky-Lösung. Aber es ist nicht akzeptabel für mich. Alle Ideen können nützlich sein.Splash Screen seltsam schwarz Rechteck auf dem Bildschirm
Ich habe eine Splash Screen Activity und ich benutze setContentView() nicht. I set Hintergrund von styles.xml mit der Verwendung von android: windowBackground
Wenn Splash-Screen gestartet, ein schwarzes Rechteck zeigt aus dem Nichts auf, an den linken unteren Teil des Bildschirms. Höhe ist genau die gleiche Höhe mit NavigationBar, beginnt von der linken Seite des Bildschirms und endet in der Mitte des Bildschirms.
Dieses schwarze Rechteck erscheint nur bei Geräten, die haben Navigationsleiste. Nicht physische Tasten. Und auch nur sichtbar, wenn Sie versuchen, verstecken oder zeigen Navigationsleiste bei einer FullScreen Aktivität.
FRAGE: Was ist der Grund dieses Fehlers sein kann? Wie kann ich es lösen?
Sie können die gesamte Veranstaltung unten sehen. (Splash Screen zum Login-Bildschirm Übergang)
Hier meine splash Aktivität Stil:
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@drawable/background_splash</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
background_splash.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
//Tried different colored layer at bottom level but did not affect
<item>
<shape android:shape="rectangle">
<solid android:color="@color/grey_Dark"/>
</shape>
</item>
//Background image
<item
android:drawable="@drawable/bg"
android:gravity="center"/>
//9-patch Logo at the center
<item
android:drawable="@drawable/splash_logo"
android:gravity="center"/>
</layer-list>
ActivitySplash
public class ActivitySplash extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
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 // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(ActivitySplash.this, ActivityLogin.class);
startActivity(intent);
finish();
}
}, 2000);
}
}
Haben Sie dieses Problem mit "Layoutgrenzen anzeigen" aktiviert? Ist das tatsächlich eine Ansicht dort? – azizbekian
@azizbekian eine Antwort geschrieben, können Sie überprüfen. –