Frage Was ist CoordinatorLayout?


Wir haben uns die Demo-App der neuen Android-Support-Design-Bibliothek angesehen. Es wird von Chris Banes zur Verfügung gestellt Github. Durch die App, CoordinatorLayout wird stark benutzt. Auch viele der Support-Design-Bibliotheksklassen wie FloatingActionButton, SnackBar, AppBarLayout usw. verhält sich im Inneren anders CoordinatorLayout.

Kann jemand bitte etwas Licht auf was werfen? CoordinatorLayout und wie es sich von anderen unterscheidet ViewGroups in Android, oder zumindest den richtigen Weg zum Lernen bieten CoordinatorLayout.


76
2018-05-29 18:35


Ursprung


Antworten:


Hier suchen Sie.

aus Dokumenten

Die Design-Bibliothek wird eingeführt CoordinatorLayoutein Layout, das eine zusätzliche Ebene der Kontrolle über Berührungsereignisse zwischen untergeordneten Ansichten bietet, was viele der Komponenten in der Design-Bibliothek ausnutzen.

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

In diesem Link sehen Sie die Demo-Videos aller oben genannten Ansichten.

hoffe das hilft :)


33
2018-05-29 19:37



Was ist ein CoordinatorLayout? Lassen Sie sich nicht von dem ausgefallenen Namen täuschen, es ist nichts anderes als ein FrameLayout auf Steroiden

Um zu verstehen, was a CoordinatorLayout Ist / ist, müssen Sie zuerst verstehen / bedenken, was es bedeutet, zu koordinieren.

Wenn Sie das Wort googlen

Koordinate

Das ist was du bekommst:

enter image description here

Ich denke, dass 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 (Kindansichten) eines (̶a̶ ̶c̶o̶m̶p̶l̶e̶x̶ ̶a̶c̶t̶i̶v̶i̶t̶y̶ ̶o̶r̶ ̶a̶n̶ ̶o̶r̶g̶a̶n̶i̶z̶a̶t̶i̶o̶n̶) ̶ Layouts in eine harmonische oder effiziente Beziehung:

Mit Hilfe eines CoordinatorLayout arbeiten Kinderansichten harmonisch zusammen, um tolle Verhaltensweisen wie z

zieht, wischt, schleudert oder andere Gesten.

Ansichten innerhalb eines CoordinatorLayouts verhandeln mit anderen, um durch deren Angabe effektiv zusammenarbeiten zu können Verhaltensweisen

Ein CoordinatorLayout ist eine super coole Funktion von Material Design, die dabei hilft, attraktive und harmonisierte Layouts zu erstellen.

Alles, was Sie tun müssen, ist, Ihre Kindansichten in das CoordinatorLayout zu integrieren.

<?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 zur Verfügung stellt, ist ein Layout, das gescrollt werden kann, um die Werkzeugleiste zu reduzieren und den FloatingActionButton zu verbergen

Öffnen:

enter image description here

Geschlossen:

enter image description here


17
2018-01-26 19:33



Ein zusätzlicher zu beachtender Punkt. Seit OP speziell gefragt

Auch viele der Support-Design libabry Klassen mögen   FloatingActionButton, SnackBar, AppBarLayout usw. verhält sich anders   wenn es in CoordinatorLayout verwendet wird.

Und ich denke, das liegt daran.

CoordinatorLayout ist ein leistungsstarkes FrameLayout.

FAB Button, SnackBar arbeitet mit dem Konzept von FrameLayout, und da CoordinatorLayout selbst die Funktionalität von FrameLayout besitzt, kann es dazu führen, dass sich andere Ansichten anders verhalten!


11
2017-07-02 11:35



KoordinatorLayout ist im Wesentlichen das Rahmen-Layout mit vielen Fähigkeiten, die aus dem Namen ersichtlich ist, es automatisiert die Koordination zwischen seinen Kindern und hilft, schöne Ansichten zu bauen. Seine Implementierung kann in Google Play Store App gesehen werden. Wie die Symbolleiste minimiert und Farben ändert.

Das beste Ding über KoordinatorLayoutist das Verhalten, das wir seinen direkten oder indirekten Nachkommen geben. Sie müssen gesehen haben, während Scrollen alle UI in Bewegung versetzt. Es ist sehr wahrscheinlich, dass das Verhalten seine Magie ausübt.


7
2018-06-23 06:10



Um einen kurzen Schnappschuss dessen zu geben, was in der Android Dokumentation :

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

Zum Beispiel, wenn Sie möchten, dass Ihre ToolBar minimiert oder ausgeblendet wird. Google hat es wirklich leicht gemacht, indem es AppBarLayout & CollapsingToolbarLayout eingeführt hat, die am besten unter einem CoordinatorLayout funktionieren.

Die andere am häufigsten verwendete Situation ist, wenn Sie möchten, dass ein FloatingActionButton am unteren Rand Ihrer CollapsingToolbar bleibt und sich damit bewegt, indem er sie unter ein CoordinatorLayout setzt und verwendet app:layout_anchor="@id/YourAppBarId" für den Kleber (!) und app:layout_anchorGravity="bottom|end" als Position wird genug sein, um die magische Arbeit zu sehen!

Wenn Sie dieses Layout als Kontext verwenden, haben die untergeordneten Ansichten eine bessere Zusammenarbeit und verhalten sich auf intelligente Weise, da sie sich über den CoordinatorLayout-Kontext gegenseitig kennen. Das bedeutet, dass Ihre FloatingAction-Schaltflächen nicht mehr von einer snackBar usw. überlagert werden.

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

Siehe die Google Scrolling-Ansichtsaktivitätsvorlage


5
2017-08-23 06:29