webentwicklung-frage-antwort-db.com.de

Was ist CoordinatorLayout?

Schauen Sie sich einfach die Demo-App der neuen Android Support Design Library an. Sie wird von Chris Banes auf github bereitgestellt. Dachte, die App ist CoordinatorLayout Sehr häufig verwendet. Außerdem verhalten sich viele Klassen der Unterstützungsdesignbibliothek wie FloatingActionButton, SnackBar, AppBarLayout usw. anders, wenn sie in CoordinatorLayout verwendet werden.

Kann jemand bitte ein paar Lichtblicke darauf werfen, was CoordinatorLayout ist und wie es sich von anderen ViewGroups in Android unterscheidet, oder zumindest den richtigen Weg zum Lernen von CoordinatorLayout angeben?.

86
jimmy0251

Hier suchen Sie.

von docs

Mit der Designbibliothek wird CoordinatorLayout eingeführt, ein Layout, das eine zusätzliche Steuerungsebene für Berührungsereignisse zwischen untergeordneten Ansichten bietet. Dies wird von vielen Komponenten in der Designbibliothek genutzt.

https://Android-developers.googleblog.com/2015/05/Android-design-support-library.html

in diesem link sehen sie die demovideos aller oben genannten ansichten.

hoffe das hilft :)

34
Qadir Hussain

Was ist ein CoordinatorLayout? Lassen Sie sich nicht vom ausgefallenen Namen täuschen, es ist nichts anderes als ein FrameLayout für Steroide

Um am besten zu verstehen, was ein CoordinatorLayout ist/tut, müssen Sie zunächst verstehen/bedenken, was es bedeutet, zu koordinieren.

Wenn Sie Google das Wort

Koordinate

Das ist was du bekommst:

enter image description here

Ich denke, diese Definitionen helfen zu beschreiben, was ein CoordinatorLayout alleine macht und wie sich die Ansichten darin verhalten.

Ein CoordinatorLayout (eine ViewGroup) bringt die verschiedenen Elemente (untergeordnete Views) eines (̶a̶ ̶c̶o̶m̶p̶l̶e̶x̶ ̶a̶c̶t̶i̶v̶i̶t̶y̶ ̶o̶r̶ ̶a̶n̶ ̶o̶r̶a̶n̶i̶z̶o̶r̶g̶g̶a̶a̶g̶g̶a̶t in ein.

Mithilfe eines CoordinatorLayouts arbeiten untergeordnete Ansichten harmonisch zusammen, um beeindruckende Verhaltensweisen wie z

schleppt, wischt, schleudert oder andere Gesten.

Ansichten in einem CoordinatorLayout verhandeln mit anderen, um durch Angabe dieser Verhalten effektiv zusammenzuarbeiten

Ein CoordinatorLayout ist eine coole Funktion von Material Design, mit der attraktive und harmonisierte Layouts erstellt werden können.

Sie müssen lediglich Ihre untergeordneten Ansichten in das CoordinatorLayout einbinden.

<?xml version="1.0" encoding="utf-8"?>
<Android.support.design.widget.CoordinatorLayout        
 xmlns:Android="http://schemas.Android.com/apk/res/Android"
 xmlns:app="http://schemas.Android.com/apk/res-auto"
 xmlns:tools="http://schemas.Android.com/tools"
 Android:layout_width="match_parent"
 Android:layout_height="match_parent"
 Android:fitsSystemWindows="true"
 tools:context="com.byte64.coordinatorlayoutexample.ScollingActivity">

 <Android.support.design.widget.AppBarLayout
    Android:id="@+id/app_bar"
    Android:layout_width="match_parent"
    Android:layout_height="@dimen/app_bar_height"
    Android:fitsSystemWindows="true"
    Android:theme="@style/AppTheme.AppBarOverlay">

    <Android.support.design.widget.CollapsingToolbarLayout
        Android:id="@+id/toolbar_layout"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">



        <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
        <TableLayout
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"/>

    </Android.support.design.widget.CollapsingToolbarLayout>
</Android.support.design.widget.AppBarLayout>

<include layout="@layout/content_scolling" />

<Android.support.design.widget.FloatingActionButton
    Android:id="@+id/fab"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_margin="@dimen/fab_margin"
    app:layout_anchor="@id/app_bar"
    app:layout_anchorGravity="bottom|end"
    app:srcCompat="@Android:drawable/ic_dialog_email" />

 </Android.support.design.widget.CoordinatorLayout>

und content_scrolling:

<?xml version="1.0" encoding="utf-8"?>
<Android.support.v4.widget.NestedScrollView     
 xmlns:Android="http://schemas.Android.com/apk/res/Android"
 xmlns:app="http://schemas.Android.com/apk/res-auto"
 xmlns:tools="http://schemas.Android.com/tools"
 Android:layout_width="match_parent"
 Android:layout_height="match_parent"
 app:layout_behavior="@string/appbar_scrolling_view_behavior"
 tools:context="com.byte64.coordinatorlayoutexample.ScollingActivity"
 tools:showIn="@layout/activity_scolling">

 <TextView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_margin="@dimen/text_margin"
    Android:text="@string/large_text" />

 </Android.support.v4.widget.NestedScrollView>

Was dies uns gibt, ist ein Layout, das gescrollt werden kann, um die Symbolleiste auszublenden und den FloatingActionButton auszublenden

Geöffnet:

enter image description here

Geschlossen:

enter image description here

31

Ein zusätzlicher Punkt zu beachten. Da OP speziell gefragt

Außerdem verhalten sich viele der unterstützten Design-Bibliotheksklassen wie FloatingActionButton, SnackBar, AppBarLayout usw. anders, wenn sie in CoordinatorLayout verwendet werden.

Und ich denke, das liegt daran.

CoordinatorLayout ist ein leistungsstarkes FrameLayout.

FAB Button, SnackBar arbeitet mit dem Konzept von FrameLayout und da CoordinatorLayout selbst über die Funktionalität von FrameLayout verfügt, kann es sein, dass andere Ansichten sich anders verhalten.

12
capt.swag

CoordinatorLayout ist im Wesentlichen das Rahmenlayout mit vielen Funktionen, das aus dem Namen hervorgeht. Es automatisiert die Koordination zwischen seinen Kindern und hilft dabei, schöne Ansichten zu erstellen. Die Implementierung ist in der Google Play Store App zu sehen. So wird die Symbolleiste ausgeblendet und ändert die Farben.

Das Beste an CoordinatorLayout ist das Verhalten, das wir seinen direkten oder indirekten Nachkommen geben. Sie müssen beim Scrollen gesehen haben, wie sich die gesamte Benutzeroberfläche in Bewegung setzt. Es ist sehr wahrscheinlich, dass das Verhalten seine Magie entfaltet.

7
Uzair

So geben Sie einen kurzen Überblick über die Vorteile der Android-Dokumentation :

Verwenden Sie CoordinatorLayout, um einfach das relationale Verhalten Ihrer Ansichten zu steuern.

Zum Beispiel, wenn Sie möchten, dass Ihre ToolBar ein- oder ausgeblendet wird. Mit der Einführung von AppBarLayout & CollapsingToolbarLayout, die beide unter einem CoordinatorLayout am besten funktionieren, hat Google es wirklich einfach gemacht.

Die andere am häufigsten verwendete Situation ist, wenn Sie möchten, dass ein FloatingActionButton am unteren Rand Ihrer CollapsingToolbar haftet und sich damit fortbewegt. Legen Sie ihn unter ein CoordinatorLayout und verwenden Sie app:layout_anchor="@id/YourAppBarId" Für den Klebstoff (!) Und app:layout_anchorGravity="bottom|end" als Position reicht aus, um die magische Arbeit zu sehen!

Wenn Sie dieses Layout als Kontext verwenden, können die untergeordneten Ansichten besser zusammenarbeiten und sich auf intelligente Weise verhalten, da sie sich über den CoordinatorLayout-Kontext gegenseitig kennen. Dies bedeutet, dass sich Ihre FloatingAction-Schaltflächen nicht mehr mit einer SnackBar usw. überlappen.

dies war nur eine kurze Zusammenfassung der nützlichsten Teile. Wenn Sie also beim Animieren Ihrer App mehr Zeit sparen möchten, lohnt es sich, etwas tiefer in das Thema einzutauchen.

siehe die Aktivitätsvorlage für die Google Scrolling-Ansicht

5
AmiNadimi

Zu beachten ist, dass CoordinatorLayout keine angeborenen Kenntnisse über FloatingActionButton- oder AppBarLayout-Funktionen hat. Es stellt lediglich eine zusätzliche API in Form von Coordinator.Behavior bereit, mit der untergeordnete Ansichten Berührungsereignisse und Gesten besser steuern können sowie Abhängigkeiten untereinander deklarieren und Rückrufe über onDependentViewChanged () erhalten.

Ansichten können ein Standardverhalten mithilfe der Annotation CoordinatorLayout.DefaultBehavior (YourView.Behavior.class) deklarieren oder in Ihren Layoutdateien mithilfe der App layout_behavior = "com.example.app.YourView $ Behavior" festlegen. Mit diesem Framework kann jede Ansicht in CoordinatorLayout integriert werden.

Jetzt verfügbar! Die Designbibliothek ist jetzt verfügbar. Stellen Sie daher sicher, dass Sie das Support-Repository für Android im SDK-Manager aktualisieren. Anschließend können Sie die Entwurfsbibliothek mit einer einzelnen neuen Abhängigkeit verwenden:

compile 'com.Android.support:design:22.2.0' Beachten Sie, dass die Designbibliothek von den Support-Bibliotheken von Support v4 und AppCompat abhängt. Diese werden automatisch einbezogen, wenn Sie die Abhängigkeit der Designbibliothek hinzufügen. Wir haben auch dafür gesorgt, dass diese neuen Widgets in der Entwurfsansicht des Android Studio-Layout-Editors verwendet werden können (finden Sie sie unter CustomView), um Ihnen die Vorschau einiger dieser neuen Komponenten zu erleichtern.

Die Design-Bibliothek, AppCompat und alle Android Support-Bibliotheken sind wichtige Werkzeuge, um die Bausteine ​​bereitzustellen, die zum Erstellen einer modernen, gut aussehenden Android App erforderlich sind, ohne dass alles von Grund auf neu erstellt werden muss.

0
Qaim Raza