Heim > Java > javaLernprogramm > Hauptteil

Android implementiert eine immersive Benachrichtigungsleiste. Die Hintergrundfarbe der Benachrichtigungsleiste ändert sich entsprechend der Hintergrundfarbe der App-Navigationsleiste.

高洛峰
Freigeben: 2017-01-20 15:48:03
Original
1903 Leute haben es durchsucht

In letzter Zeit haben viele Apps die immersive Benachrichtigungsleiste eingeführt: Sie verbirgt die verschiedenen Bedienbereiche der Benutzeroberfläche, die für die Navigation in einem von Programminhalten dominierten Szenario verwendet werden, um sie durch eine relativ „unsichtbare“ Benutzeroberfläche zu maximieren die Sichtbarkeit des Benutzers für den Inhalt selbst.

Der Immersionsmodus der Benachrichtigungsleiste des neuesten Android 4.4-Systems besteht darin, dass beim Öffnen der Software die Benachrichtigungsleiste und die obere Farbe der Software integriert werden. Dadurch werden nicht nur die Software und das System integriert selbst stärker integriert. Die Farbe der Benachrichtigungsleiste des Mobiltelefons ist nicht mehr nur weiß oder schwarz. Das von mir verwendete Xiaomi Mi 4-Mobiltelefon unterstützt beispielsweise die immersive Benachrichtigungsleiste Wenn Sie sich Ihren eigenen QQ ansehen, ist die Hintergrundfarbe seines Titels blau, dann wird auch die Benachrichtigungsleiste blau. Früher war das vielleicht nicht möglich, aber seit Kurzem wird es unterstützt.

Ich weiß nicht, wann miui6 einheitlich unterstützt wird. Lassen Sie mich Ihnen sagen, wie Sie dafür sorgen, dass Ihre App die immersive Benachrichtigungsleiste unterstützt:

Einige Experten auf Github haben es bereits untersucht. Lassen Sie uns darüber sprechen, wie Sie es implementieren:

Laden Sie zuerst SystemBarTint herunter und konvertieren Sie es Innerhalb Kopieren Sie SystemBarTintManager.java und fügen Sie es in Ihr eigenes Projekt ein und legen Sie die Farbe der Benachrichtigungsleiste in der Aktivitätsmethode onCreate() fest (die Farbe muss entsprechend dem Hintergrund der Titelleiste der Software definiert werden)

Code 1:

Der Code lautet wie folgt:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
setTranslucentStatus(true);
}
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setStatusBarTintResource(R.color.statusbar_bg);//通知栏所需颜色
Nach dem Login kopieren

Im Folgenden wird der Status der Benachrichtigungsleiste festgelegt

@TargetApi(19)
private void setTranslucentStatus(boolean on) {
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
if (on) {
winParams.flags |= bits;
} else {
winParams.flags &= ~bits;
}
win.setAttributes(winParams);
}
Nach dem Login kopieren

Das ist es. Die perfekte Implementierung der immersiven Benachrichtigungsleiste. Beachten Sie, dass das System über 4.4 sein muss. Freunde, kommt und probiert es aus.

Code 2:

Die Hintergrundfarbe der Benachrichtigungsleiste ändert sich entsprechend der Hintergrundfarbe der App-Navigationsleiste (oberer Titel).
Dies wird auch als immersive Statusleiste bezeichnet, die von Google in Android 4.4 und höher vorgeschlagen wurde.
Der Stil ist wie in der Abbildung dargestellt:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
Nach dem Login kopieren

Fügen Sie dann die XML-Layoutdatei hinzu:

android:clipToPadding="false"
android:fitsSystemWindows="true"
Nach dem Login kopieren

Weitere Android-Implementierungen immersiver Benachrichtigungen Benachrichtigungen in der Leiste Die Hintergrundfarbe der Leiste ändert sich entsprechend der Hintergrundfarbe der App-Navigationsleiste. Weitere Artikel finden Sie auf der chinesischen PHP-Website.


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage