Co To jest CoordinatorLayout?
Właśnie rzuciłem okiem na aplikację demonstracyjną nowej biblioteki projektów wsparcia dla Androida. Jest on dostarczany przez Chrisa Banesa na github. Przez aplikację, CoordinatorLayout
jest mocno używany. Ponadto wiele klas biblioteki projektów wsparcia, takich jak FloatingActionButton
, SnackBar
, AppBarLayout
itd. zachowuje się inaczej, gdy jest używany wewnątrz CoordinatorLayout
.
Czy ktoś może rzucić trochę światła na to, co jest CoordinatorLayout
i czym różni się od innych ViewGroup
w Androidzie, lub przynajmniej podać poprawną ścieżkę do nauki CoordinatorLayout
.
5 answers
To jest to, czego szukasz.
From docs
Biblioteka projektu wprowadza układ CoordinatorLayout
, który zapewnia dodatkowy poziom kontroli nad zdarzeniami dotykowymi między widokami potomnymi, z czego korzysta wiele komponentów w Bibliotece projektu.
Https://android-developers.googleblog.com/2015/05/android-design-support-library.html
Pod tym linkiem zobaczysz filmy demo wszystkich wyżej wymienionych widoki.
Mam nadzieję, że to pomoże:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-24 06:06:45
Co To jest koordynator? Nie daj się zwieść wymyślnej nazwie, to nic więcej niż FrameLayout na sterydach
Aby najlepiej zrozumieć, czym jest/robi CoordinatorLayout
, musisz przede wszystkim zrozumieć/pamiętać, co to znaczy koordynować.
Jeśli Wygooglujesz słowo
Współrzędna
Oto co dostajesz:
Myślę, że te definicje pomagają opisać to, co Koordynator sam robi i jak poglądy zachowuj się w nim.
CoordinatorLayout (Grupa widoków) łączy różne elementy (widoki dzieci) układu (złożonego działania lub organizacji) w harmonijną lub efektywną relację:Z Pomocą koordynatora, poglądy dziecka harmonijnie współpracują, aby realizować niesamowite zachowania, takie jak
Przeciąganie, machanie, rzucanie, lub jakiekolwiek inne gesty.
Views inside a CoordinatorLayout negocjuj z innymi, aby efektywnie współpracować, określając te zachowania
CoordinatorLayout to super fajna funkcja projektowania materiałów, która pomaga tworzyć atrakcyjne i zharmonizowane układy.Wszystko, co musisz zrobić, to zawinąć widoki dziecka wewnątrz CoordinatorLayout.
<?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>
I 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>
Daje nam to układ, który można przewijać w celu zwinięcia paska narzędzi i ukrycia FloatingActionButton
Otwórz:
Zamknięte:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-29 21:45:33
Dodatkowa uwaga. Od OPP
Również wiele klas libabry wspomagających projektowanie, takich jak FloatingActionButton, SnackBar, AppBarLayout itp. zachowuje się inaczej stosowany wewnątrz CoordinatorLayout.
I chyba właśnie z tego powodu.
CoordinatorLayout jest super-powered FrameLayout.
FAB Button, SnackBar działa na koncepcji FrameLayout, a ponieważ sam CoordinatorLayout ma funkcjonalność FrameLayout, może sprawić, że inne widoki zachowają się inaczej!.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-02 11:35:13
Najlepszą rzeczą w Koordynatorlayout jest zachowanie, które dajemy jego bezpośrednim lub pośrednim potomkom. Musisz widzieć podczas przewijania cały interfejs staje się w ruchu. Its bardzo prawdopodobne, że to zachowanie działa magicznie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-24 09:42:36
Aby dać szybkie ujęcie tego, co jest przydatne w dokumentacji Androida :
Użyj CoordinatorLayout, aby po prostu kontrolować relacyjne zachowanie swoich poglądów,
Na przykład, jeśli chcesz, aby pasek narzędzi się zwijał lub ukrywał. Google ułatwiło to wprowadzenie AppBarLayout & CollapsingToolbarLayout, które działają najlepiej pod coordinatorlayout.
Drugą najczęściej używaną sytuacją jest sytuacja, gdy chcesz, aby FloatingActionButton przyklejał się do dna twojego Zwijając pasek i poruszając się z nim, wkładając je pod koordynatorlayout i używając app:layout_anchor="@id/YourAppBarId"
do kleju (!) i app:layout_anchorGravity="bottom|end"
jako pozycja wystarczy, aby zobaczyć magiczne działanie!
Używając tego układu jako kontekstu, widoki potomne będą miały lepszą współpracę i będą zachowywać się w inteligentny sposób, ponieważ będą świadome siebie za pośrednictwem kontekstu CoordinatorLayout, co oznacza, że Twoje przyciski FloatingAction nie będą już pokrywane przez snackBar itp.
Były to wystarczy krótkie podsumowanie najbardziej przydatnych części , więc jeśli chcesz zaoszczędzić więcej czasu na animowaniu aplikacji, warto będzie głębiej zagłębić się w temat.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-23 06:52:31