Что такое CoordinatorLayout?
просто взглянул на демонстрационное приложение новой библиотеки дизайна поддержки Android. Это предусмотрено Крисом Бэйнсом на github. Через приложение, CoordinatorLayout
используется в большой степени. Кроме того, многие классы библиотеки поддержки дизайна, такие как FloatingActionButton
,SnackBar
,AppBarLayout
etc. ведет себя по-разному при использовании внутри CoordinatorLayout
.
может кто-нибудь, пожалуйста, пролить свет на то, что CoordinatorLayout
и чем он отличается от других ViewGroup
s в Android, или, по крайней мере, обеспечить правильный путь к обучение CoordinatorLayout
.
5 ответов:
вот его вы и ищете.
идее
библиотека дизайна вводит
CoordinatorLayout
, макет, который обеспечивает дополнительный уровень контроля над сенсорными событиями между дочерними представлениями, чем пользуются многие компоненты в библиотеке проектирования.https://android-developers.googleblog.com/2015/05/android-design-support-library.html
в этой ссылке вы увидите видео демо все вышеперечисленные мнения.
надеюсь, что это помогает :)
что такое CoordinatorLayout? Не позволяйте фантазии имя обмануть вас, это не более чем FrameLayout на стероидах
чтобы лучше понять, что такое
CoordinatorLayout
есть/есть, вы должны прежде всего понять / иметь в виду, что значит координировать.Если Вы Google слово
координации
вот что вы получаете:
Я думаю, что эти определения помогают описать что делает CoordinatorLayout сам по себе и как ведут себя взгляды внутри него.
A CoordinatorLayout (ViewGroup) объединяет различные элементы (дочерние представления) макета (сложной деятельности или организации) в гармоничные или эффективные отношения:
С помощью CoordinatorLayout, взгляды ребенка работают совместно гармонично для того чтобы снабдить внушительные поведения как
перетаскивания, пойло, броски, или любые другие жесты.
представления внутри CoordinatorLayout договариваются с другими, чтобы эффективно работать вместе, указывая эти поведение
A CoordinatorLayout-это супер крутая особенность дизайна материалов, которая помогает создавать привлекательные и гармонизированные макеты.
все, что вам нужно сделать, это обернуть ваши представления ребенка внутри 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>
и 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>
что это дает нам макет, который можно прокрутить, чтобы свернуть панель инструментов и скрыть FloatingActionButton
работает:
работает:
дополнительно отметить. Так как ОП специально спросил
кроме того, многие из классов поддержки дизайна libabry, таких как FloatingActionButton, SnackBar, AppBarLayout etc. вести себя иначе при использовании внутри CoordinatorLayout.
и я думаю, что это из-за этого.
CoordinatorLayout-это супермощный FrameLayout.
кнопка FAB, SnackBar работает над концепцией FrameLayout, и поскольку сам CoordinatorLayout имеет функциональность FrameLayout, он может заставить другие представления вести себя по-другому!.
CoordinatorLayout это по существу макет кадра с большим количеством возможностей, которые очевидны из названия, он автоматизирует координацию между своими детьми и помогает строить красивые виды. Его реализацию можно увидеть в приложении Google Play Store.Как панель инструментов сворачивается и меняет цвета.
самое лучшее в CoordinatorLayoutэто поведение, которое мы даем его прямым или косвенным потомкам. Вы должны были видеть при прокрутке всего пользовательского интерфейса приходит в движение. Его весьма вероятно поведение работает свою магию.
чтобы дать быстрый снимок того, что полезно в Документация Для Android:
используйте CoordinatorLayout, чтобы просто контролировать реляционное поведение ваших представлений,
например, если вы хотите, чтобы Панель инструментов свернуть или скрыть. Google сделал это очень легко, введя AppBarLayout & CollapsingToolbarLayout, которые оба работают лучше всего под CoordinatorLayout.
другая наиболее часто используемая ситуация - это когда вы хотите, чтобы FloatingActionButton придерживайтесь нижней части вашего CollapsingToolbar и двигаться с ним, поставив их под coordinatorLayout и использовать
app:layout_anchor="@id/YourAppBarId"
для клея(!) иapp:layout_anchorGravity="bottom|end"
как позиция будет достаточно для вас, чтобы увидеть волшебную работу!используя этот макет в качестве контекста, дочерние представления будут лучше сотрудничать и вести себя разумно, потому что они будут знать друг о друге через контекст CoordinatorLayout , это означает, что ваши кнопки FloatingAction больше не будут перекрываться на закусочной и т. д.
это было просто краткое изложение наиболее полезных частей, так что если вы хотите сэкономить больше времени на анимации вашего приложения, это будет стоить того, чтобы немного глубже погрузиться в тему.
посмотреть Google Scrolling view activity template