Sollten wir Action Bar durch ToolBar ersetzen?

Lesezeit: 9 Minuten

Benutzer-Avatar
Stiller Ritter

Ich habe verwendet ToolBar seit es hinzugefügt wurde v7-Bibliothek unterstützen. Und ich denke, ich habe es gut genutzt. Aber es gibt einen Punkt, den ich nicht verstehe. Warum sollte Google ein solches Widget erstellen? Ich meine, wir können alles tun ToolBar kann durch die Verwendung tun ActionBar. Warum müssen wir verwenden ToolBar? Was sind Vorteile von ToolBar Über ActionBar wenn überhaupt? Ist es notwendig zu ersetzen ActionBar durch ToolBar?

Jeder Tipp ist willkommen. Und danke im Voraus.

PS: ich fand ToolBar ist ein Dekantant von ViewGroup. Also, wie könnten wir verwenden ToolBar wie ein Layout? Könnte jemand ein paar Codes davon posten?

  • Ich finde quora ist besser für diese Art von Frage

    – Blaze Tama

    23. April 2015 um 4:10 Uhr

  • Für Materialdesign, ja, das sollten Sie.

    – Anggrayudi H

    23. April 2015 um 4:51 Uhr

  • @BlazeTama Was ist quora?

    – Stiller Ritter

    23. April 2015 um 5:56 Uhr

  • Weniger als API 21 müssen Sie nicht verwenden ToolBar

    – Xcihnegn

    27. April 2015 um 7:28 Uhr

  • @Xcihnegn ToolBar für die Kompatibilität könnte für API 7+ verwendet werden.

    – Stiller Ritter

    27. April 2015 um 8:10 Uhr

Benutzer-Avatar
Shane Ekanayake

Ja, Sie sollten die ActionBar durch eine neue Symbolleiste ersetzen.

Gründe dafür

  1. Es sieht modern aus und folgt einem neuen Materialdesign.

  2. Im Gegensatz zur Aktionsleiste ist die Symbolleiste kein Teil des Fensterdekors. Sie definieren und platzieren es wie jedes andere Widget … daher haben Sie die Freiheit, es an einer beliebigen Stelle im übergeordneten Layout zu platzieren.

  3. Sie haben die Freiheit, jedes Widget in der Symbolleiste zu platzieren.

  4. Sie können mehrere Symbolleisten definieren.

BEARBEITEN

Was ich meinte, ist, dass Sie andere Widgets (Ansichten) in der Symbolleiste platzieren können.

Erstellen Sie eine separate Layoutdatei für die Symbolleiste (gut für die Wiederverwendbarkeit). In meinem Fall ist der Dateiname main_toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:App="http://schemas.android.com/apk/res-auto"
    xmlns:segmentedgroup="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    App:theme="@style/ToolbarColoredBackArrow"
    android:layout_height="56dp"
    android:background="@color/primary_color" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="@dimen/drawer_fntsize"
        android:text="Title"
        android:id="@+id/lbl_title"
        android:textColor="@color/title_text_color"
        android:layout_gravity="center" />

 </android.support.v7.widget.Toolbar>

Fügen Sie diese Symbolleiste dann wie folgt in Ihr Hauptlayout ein

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        android:id="@+id/toolbar"
        layout="@layout/main_toolbar" />

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/toolbar" />

</RelativeLayout>

Wie Sie in diesem Beispiel sehen können, habe ich TextView in der Symbolleiste platziert

  • Sie sagen, wir können es gebrauchen ToolBar als Widget wie andere. Und nachdem ich das Dokument gelesen habe, finde ich ToolBar erbt von ViewGroupalso, haben Sie erfolgreiche Anwendungsfälle? ToolBar Als ein Layout so wie LinearLayout, FrameLayout?

    – Stiller Ritter

    23. April 2015 um 6:14 Uhr


Warum würde Android ein solches Widget erstellen?

Stellen Sie sich, wenn Sie so wollen, ein Android-Tablet vor.

Auf diesem Tablet läuft eine App. Diese App hat in der unteren rechten Ecke des Bildschirms einen Rich-Text-Editor, in dem man einige Kommentare eingeben und formatieren kann Fett gedruckt, kursivetc.

In einer Desktop- oder Web-App wäre ein typischer Ansatz für diese Formatierungsoptionen neben Tastaturkürzeln eine Symbolleiste, wie die, die Sie hier auf Stack Overflow über dem Antworttextbereich sehen.

Vor Toolbarmussten Android-Entwickler entweder ihre eigene Symbolleiste rollen oder die Formatierungsaktionen in die Aktionsleiste einfügen. Der letztgenannte Ansatz ist zwar einfach, belastet den Benutzer der oben genannten fiktiven App jedoch, da der Benutzer seinen visuellen Fokus immer wieder vom Editor (unterer Bildschirm) auf die Aktionsleiste (oberer Bildschirm) verlagern muss.

Warum müssen wir ToolBar verwenden?

Sie müssen nicht verwenden Toolbar. Ich habe ~300 Beispiel-Apps im Rahmen mein Buchund im Moment verwenden genau null von ihnen Toolbar. Das muss ich irgendwann korrigieren, da ich dazu noch kein Kapitel geschrieben habe Toolbar.

Ist es notwendig, ActionBar durch ToolBar zu ersetzen?

Nein. Es gibt eine Möglichkeit, dies zu tun, aber es ist nicht notwendig.

  • Ist CommonsWare eine Person oder eine Organisation? Ich habe einige Codes von Ihnen gelesen.

    – Stiller Ritter

    26. April 2015 um 2:28 Uhr

  • @SilentKnight: “Ist CommonsWare eine Person oder eine Organisation?” — Jawohl. 🙂

    – CommonsWare

    26. April 2015 um 10:29 Uhr

  • Ich denke, @SilentKnight fährt mit dem gleichen Zweifel fort, Sie können eine Person, eine Organisation oder beides gleichzeitig sein, weil dies die 3 möglichen positiven Antworten sind, wenn der Operator ODER ist

    – Adrian Cid Almaguer

    26. April 2015 um 14:09 Uhr

  • @CommonsWare unterstützt Toolbar Low-Level-API? Ich frage nach API Level 7 oder 8?

    – Samir Mangrolia

    2. Januar 2016 um 9:58 Uhr

  • @SamirMangroliya: Die Version von Toolbar aus appcompat-v7 unterstützt zurück zu API Level 7.

    – CommonsWare

    2. Januar 2016 um 10:16 Uhr

Benutzer-Avatar
Ludwig CAD

Die Symbolleiste ist viel flexibler als die Standard-ActionBar, Sie können viel mehr Werkzeuge in einer Symbolleiste hinzufügen (da sie ViewGroup erweitert) und Material Design Guidelines befolgen.

Mit einer Symbolleiste können Sie beispielsweise Folgendes tun:

Meine Dateien mit großer Symbolleiste

Eine normale ActionBar soll nicht auf diese Weise erweitert werden.

Außerdem können Sie Toolbar-Inhalte besser manipulieren, da Sie sie in Ihre Aktivitätslayout-XML-Datei einfügen können. Persönlich verwende ich ein LinearLayout oder ein RelativeLayout mit oben der Symbolleiste und unten, um den verbleibenden Platz zu füllen, einem FrameLayout, in dem meine Fragmente hinzugefügt werden.

Schließlich können Sie Ihre Symbolleiste beliebig platzieren, wie Sie es in Ihrer Layoutdatei festgelegt haben.

AKTUALISIEREN:

Google veröffentlicht Android Design Support-Bibliothek. Der empfohlene Weg, um eine erweiterte Appbar zu erhalten, ist das Wrappen Toolbar mit AppBarLayoutund fügen Sie eine zusätzliche Ansicht hinzu, z TabLayout in. Um einen FAB über die Symbolleiste wie in diesem Screenshot zu erhalten, können Sie verwenden CoordinatorLayout um Ihren Layoutinhalt zu umschließen, und verwenden Sie dann Ankerattribute auf dem FAB.

Benutzer-Avatar
Stiller Ritter

Ein Standard toolbar ist für die Verwendung innerhalb von Anwendungsinhalten vorgesehen.

EIN Toolbar ist eine Verallgemeinerung von action bars zur Verwendung in Anwendungslayouts. Während ein action bar ist traditionell Teil einer Activityist undurchsichtig window decor kontrolliert durch die frameworka Toolbar können auf jeder beliebigen Verschachtelungsebene innerhalb einer Ansichtshierarchie platziert werden. Eine Anwendung kann wählen, a zu benennen Toolbar als die action bar für ein Activity Verwendung der setActionBar() Methode.

Toolbar unterstützt einen fokussierteren Funktionsumfang als ActionBar. Von Anfang bis Ende, a toolbar kann eine Kombination der folgenden optionalen Elemente enthalten:

  • Eine Navigationstaste. Dies kann eine sein Up arrow, Navigationsmenü umschalten, schließen, reduzieren, fertig oder eine andere Glyphe nach Wahl der App. Diese Schaltfläche sollte immer verwendet werden, um auf andere Navigationsziele innerhalb des Containers zuzugreifen Toolbar und seinen bezeichneten Inhalt oder anderweitig den aktuellen Kontext verlassen, der durch bezeichnet wird
    Toolbar. Die Navigationsschaltfläche ist innerhalb des vertikal ausgerichtet
    ToolbarMindesthöhe von , falls festgelegt.
  • Ein Markenlogobild. Diese kann bis zur Höhe des Balkens reichen und beliebig breit sein.
  • Ein Titel und Untertitel. Der Titel soll ein Wegweiser für die sein
    Toolbardie aktuelle Position von in der Navigationshierarchie und die darin enthaltenen Inhalte. Das subtitle, falls vorhanden, sollte auf erweiterte Informationen zum aktuellen Inhalt hinweisen. Wenn eine App eine logo
    image es sollte dringend erwogen werden, a wegzulassen title und subtitle.
  • Eine oder mehrere benutzerdefinierte Ansichten. Die Anwendung kann beliebige untergeordnete Ansichten zu hinzufügen Toolbar. Sie erscheinen an dieser Position im Layout. Wenn ein Kind es ansieht Toolbar.LayoutParams bezeichnet a Gravity
    Wert von CENTER_HORIZONTAL Die Ansicht versucht, sich innerhalb des verfügbaren Platzes zu zentrieren, der in der verbleibt Toolbar nachdem alle anderen Elemente gemessen wurden.
  • Ein Aktionsmenü. Das menu von Aktionen werden an das Ende der angeheftet
    Toolbar bietet einige häufige, wichtige oder typische Aktionen zusammen mit einer optionalen Aktion an overflow menu für zusätzliche Aktionen. Action Schaltflächen sind innerhalb der vertikal ausgerichtet ToolbarMindesthöhe von , falls festgelegt.

Im modernen Android UI-Entwickler sollten sich mehr auf ein visuell deutliches Farbschema für Symbolleisten stützen als auf ihr Anwendungssymbol. Von der Verwendung von Anwendungssymbol plus Titel als Standardlayout wird auf API 21-Geräten und höher abgeraten.

Benutzer-Avatar
Zugriff abgelehnt

Eine Symbolleiste ist eine Verallgemeinerung von Aktionsleisten zur Verwendung in Anwendungslayouts. Während eine Aktionsleiste traditionell Teil des undurchsichtigen Fensterdekors einer Aktivität ist, das vom Framework gesteuert wird, Eine Symbolleiste kann auf jeder beliebigen Verschachtelungsebene innerhalb einer Ansichtshierarchie platziert werden. Eine Anwendung kann mithilfe der Methode setActionBar() eine Symbolleiste als Aktionsleiste für eine Aktivität festlegen. Sie können weitere Informationen finden hier. Wir haben unsere Aktionsleiste ersetzt, da es einfacher war, die Symbolleiste für das Materialdesign anzupassen. Farbpaletten und verschwindendes Animationsverhalten zum Beispiel. Ich persönlich verstehe nicht, warum Android alte Steuerelemente wegwirft und neue erstellt. Ein weiteres Beispiel wäre RecyclerView. Verstehe nicht, warum sie die alte API nicht einfach verbessert haben.

  • Sie haben auch gerade die ActionBarActivity von App Compat für AppCompatActivity weggeworfen, also … zumindest kann ihnen keine Inkonsistenz vorgeworfen werden

    – Kai

    23. April 2015 um 5:15 Uhr


Benutzer-Avatar
Anggrayudi H

Warum müssen wir verwenden ToolBar?

Die Symbolleiste wird für Vorgeräte und Backport-Kompatibilität verwendet, die die alte Support-Bibliothek nicht bietet. Denken Sie daran ActionbarSherlockAndroid hat es eigens entwickelt, um die Actionbar auf Low-Level-API-Geräten zu unterstützen.

Was sind Vorteile von ToolBar Über ActionBar wenn überhaupt?

Sie können einfach eine benutzerdefinierte Ansicht im XML der Symbolleiste hinzufügen, z. B. eine relative Layoutansicht, insbesondere einen benutzerdefinierten Titel und Symbole mit Animationen. Sie haben mehr Kontrolle über Ihre Symbolleiste als über die alte herkömmliche Aktionsleiste.

Ist es notwendig zu ersetzen ActionBar durch ToolBar?

Wenn Sie die Aktionsleiste auf Geräten unter 2.0 unterstützen, dann ja, benötigen Sie eine Back-Port-Kompatibilität für die Aktionsleiste.

  • Sie haben auch gerade die ActionBarActivity von App Compat für AppCompatActivity weggeworfen, also … zumindest kann ihnen keine Inkonsistenz vorgeworfen werden

    – Kai

    23. April 2015 um 5:15 Uhr


Benutzer-Avatar
Haris Qurashi

  1. Sie können die Symbolleiste ganz einfach anpassen.
  2. Sie können viele Widgets in der Symbolleiste hinzufügen.
  3. Sie können Ihrer Ansicht viele Symbolleisten hinzufügen.
  4. Sie haben die Freiheit, es an einer beliebigen Stelle im übergeordneten Layout zu platzieren.
  5. Sie haben eine eigene Handhabung/Verwaltung der untergeordneten Ansicht.

1186330cookie-checkSollten wir Action Bar durch ToolBar ersetzen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy