2015-11-15 7 views
19

Wie werde ich die Höhe in der Statusleiste loswerden? Wenn ich in AppbarLayout die App: height auf 0dp einstelle, erscheint die Höhe nicht mehr in der Statusleiste, sondern auch nicht unterhalb der AppbarLayout.Android Appbarlayout Höhe erscheint in der Statusleiste

Wie bekomme ich nur die Höhe unter dem AppbarLayout?

Hier ist ein Screenshot von dem, was ich meine: puush link, den Schatten in der Statusleiste bemerken :(

Dank

+0

Können Sie das Thema Ihrer Aktivität posten? – Jamal

+0

Haben Sie draw behing Statusbar Flagge? –

+0

Ich bin mir nicht sicher, was du meinst @NikolaDespotoski –

Antwort

21

Unsere Sorge um Schatten AppBarLayout sichtbar, wenn Statusleiste transparent ist ein undurchsichtige Having!. Statusleiste ist nicht jederzeit durchführbar. Diese auf Lollipop geschehen & oben nur wegen des dynamischen Schatten-Rendering. auf Eibisch der falschen Schatten sehen noch schlimmer aus.

Beste Lösung

Ihr Stammlayout sollte immer android:fitsSystemWindows="true" haben, sonst wird Ihre Benutzeroberfläche nicht hinter der Statusleiste angezeigt.

Jetzt wickeln Sie die AppBarLayout innerhalb einer anderen CoordinatorLayout, die android:fitsSystemWindows="false" hat. Dadurch wird der Schatten von überquell in statusbar


Andere Abhilfen (nicht empfohlen)

in Ihrem Stil entfernen Sie die statusBarColor verhindern:

<item name="android:statusBarColor">@android:color/transparent</item> 

So Ihr Thema wäre:

<style name="AppTheme.NoActionBar"> 
<item name="windowActionBar">false</item> 
<item name="windowNoTitle">true</item> 
<item name="android:windowDrawsSystemBarBackgrounds">true</item> 
</style> 

Auch können Sie einfach App: Elevation = "0dp" auf Appbarlayout, aber das entfernt auch den Schatten auf der Unterseite.

+0

Vielen Dank! Es funktioniert. Hier ist eine Probe als Referenz für alle anderen: https://gist.github.com/sahilshekhawat/00d24fb217f74f06fca27d133cb10d1a –