1

Ich bemerkte, dass die Google-Vorlagen in Android Studio ein wenig Schatten zwischen der Statusleiste und der Symbolleiste haben. Mein Grafikdesigner denkt, ich sollte das nicht haben, aber ich weiß es einfach nicht, da die Vorlagen es haben.Ist der Schatten zwischen der Statusleiste und der Symbolleiste für Material-Design-Apps erwünscht?

Was ist der richtige Weg?

Hier sind zwei Screenshots von Apps, die mit den Android Studio-Vorlagen und ohne Code-Änderungen erstellt wurden.

enter image description here enter image description here

EDIT: nur um zu klären, ich weiß das, weil der <item name="android:statusBarColor">@android:color/transparent</item> geschieht, die eigentlich da auf meine App gewünscht Ich habe eine nav Schublade. Aber meine Frage ist nicht so sehr, wie ich es beheben könnte, ich frage mich, ob Google so funktionieren soll?

Auch ich sollte erwähnen, dass ich nur auf Lollipop und Marshmallow teste.

Antwort

1

Nein, es sollte nicht da sein. Die Statusleiste sollte flach und ohne Schatten sein. Werfen Sie einen Blick auf dieser Seite: https://www.google.com/design/spec/style/color.html#color-color-schemes

enter image description here

Das ist meine transparente Statusleiste mit einer Schublade läuft auf Eibisch. Der Schatten ist nicht da.

enter image description here

Thema:

<item name="android:windowTranslucentStatus">true</item> 
<item name="windowActionBar">false</item> 
<item name="windowNoTitle">true</item> 

ich farbige Einsätze bin Zeichnung eines modifizierten ScrimInsetsFrameLayout mit - https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsFrameLayout.java


bearbeiten

genau zu sein, wird dieses Layout aufgebaut aus dem folgenden xml:

<carbon.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
          xmlns:app="http://schemas.android.com/apk/res-auto" 
          android:id="@+id/drawerLayout" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent"> 

    <carbon.widget.LinearLayout 
     android:id="@+id/content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     android:orientation="vertical" 
     app:carbon_insetColor="?attr/colorPrimary"/> 

    <carbon.widget.NavigationView 
     android:id="@+id/drawerMenu" 
     android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="?attr/carbon_colorBackground" 
     android:fitsSystemWindows="true" 
     android:orientation="vertical" 
     app:carbon_elevation="@dimen/carbon_elevationDrawer" 
     app:carbon_insetTop="0dp"/> 

</carbon.widget.DrawerLayout> 

Es finden sich hier zusammen mit vollen Quellen: https://raw.githubusercontent.com/ZieIony/Carbon/master/samples/src/main/res/layout/activity_navigationview.xml

Das Layout mit Einsätzen nach unten seinen Inhalt schiebt und zieht farbiges Rechteck über Inset Raum. Das ist für das Inhaltslayout. Das Einschubmenü hat ein ähnliches Layout wie das Hauptverzeichnis, aber die Einschübe sind auf 0dp eingestellt, so dass das Menü den gesamten Bildschirmplatz einnehmen kann. Die fitsSystemWindows Flag ist der Schlüssel.

+0

Sie verwenden das also als erste Ansicht Ihres Hauptaktivitätslayouts? – casolorz

+0

Ich habe den io-Zeitplan-App-Code angeschaut, und ich sehe nicht, wo sie dieses Frame-Layout verwenden, es sagt auch, dass es veraltet ist. Ich habe es zu einem neuen Projekt hinzugefügt, das direkt aus den Vorlagen erstellt wurde, und es drückt die Symbolleiste unter der Statusleiste. – casolorz

+0

Wie gesagt, es ist eine modifizierte Version. ScrimInsetsFrameLayout ist nicht perfekt, aber es war ein guter Anfang für mich. Es wurde in der vorherigen Version der Google App verwendet. Ich habe der Antwort weitere Details hinzugefügt. Ich wollte Carbon nicht zur Antwort hinzufügen, weil es zu groß ist, um als Probe nützlich zu sein. – Zielony

Verwandte Themen