Ich habe App-Leisten mit erweiterter Höhe in den Richtlinien für Google Design App- Leisten gesehen. Wie implementiere ich diese in Android Lollipop?
quelle
Ich habe App-Leisten mit erweiterter Höhe in den Richtlinien für Google Design App- Leisten gesehen. Wie implementiere ich diese in Android Lollipop?
Sie müssen das neue Symbolleisten- Widget verwenden, um dies zu erreichen. Die Symbolleiste verfügt über eine spezielle Behandlung für die Mindesthöhe, um den Platz anzugeben, der für Schaltflächen (und Aktionen) verwendet wird.
Im folgenden Beispiel stellen wir die Höhe auf 128 dp ein (dies entspricht 56 dp + 72 dp, wie in der Spezifikation definiert), behalten jedoch android:minHeight
die Standardeinstellung bei actionBarSize
(normalerweise 56 dp). Dies bedeutet, dass die Schaltflächen und Aktionen nur vertikal in den oberen 56 dp positioniert werden müssen. Wir können dann verwenden, android:gravity
um den Titel unten zu positionieren.
<Toolbar
android:id="@+id/toolbar"
android:layout_height="128dp"
android:layout_width="match_parent"
android:minHeight="?android:attr/actionBarSize"
android:background="?android:attr/colorPrimary"
android:gravity="bottom" />
Wenn Sie AppCompat verwenden, ändern Sie die zu verwendende Deklaration android.support.v7.widget.Toolbar
und verwenden Sie deren Attribute.
layout_height
der richtige Weg ist, erwarte ich, dass die hier vom Monsun beschriebene Problemumgehung auch keine Problemumgehung ist, sondern der richtige Weg? code.google.com/p/android/issues/detail?id=77874@dimen/action_bar_size_x2
skalieren Sie die Aktionsleiste in Schritten, z. B. , und verwenden Sie 112dp auf Telefonen, 128dp auf Tabletsandroid:paddingBottom
führt einen seltsamen Abstand ein, wenn eingestelltbuttonGravity
istbottom
. DastitleMarginBottom
Attribut scheint hier die bessere Option zu sein, oder?Vielen Dank für Ihre Frage, ihre Antwort und darüber hinaus für die Implementierung der Symbolleiste in der nativen und der Support-Bibliothek :)
Und wir können mehr spielen. Wir können zur Laufzeit mit der Höhe und der minimalen Höhe spielen.
Die Höhe ist die Höhe der ToolBar, sie ist einfach, jeder Körper versteht sie und die Schwerkraft wirkt entsprechend dieser Höhe.
Die minimale Höhe ist kniffliger und sollte nicht mindestens 56 dp betragen. Diese minHeight wird verwendet, um die Zeile Ihres menuItem zu platzieren. Diese Zeile befindet sich in der Mitte Ihrer Mindesthöhe.
Sie können diesen Code also zu Ihrer Aktivität hinzufügen, um den Unterschied selbst zu erkennen. :) :)
Wo sich die Symbolleiste befindet:
toolbar = (Symbolleiste) findViewById (R.id.toolbar);
Wenn Sie dies tun, erhalten Sie:
Wenn Sie die Animation jedoch fortsetzen, erhalten Sie:
Aus diesem Grund ist es in den meisten Fällen eine gute Option, die Symbolleiste android: layout_height auf wrap_content zu setzen, da die Symbolleiste ihre Höhe an den Inhalt anpasst (und Sie den Inhalt zur Laufzeit ändern können :)
Auf diese Weise können Sie auch die Größe Ihrer Symbolleiste zur Laufzeit ändern.
Vielen Dank an Chris Banes für die großartige Arbeit, die Sie an der Actionbar geleistet haben.
quelle
boolean postICS = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;