Подтвердить что ты не робот

Что такое CoordinatorLayout?

Просто посмотрел демонстрационное приложение новой библиотеки дизайна поддержки Android. Это предоставлено Крисом Банесом на github. Используется приложение CoordinatorLayout. Кроме того, многие из классов библиотеки дизайна поддержки, такие как FloatingActionButton, SnackBar, AppBarLayout и т.д., Ведут себя по-разному, когда используются внутри CoordinatorLayout.

Может кто-то пролить некоторые огни на то, что CoordinatorLayout и как он отличается от других ViewGroup в андроиде, или, по крайней мере, предоставить правильный путь к обучению CoordinatorLayout.

4b9b3361

Ответ 1

Здесь вы ищите.

из документов

В библиотеке дизайна представлен CoordinatorLayout, макет, который обеспечивает дополнительный уровень контроля над событиями касания между дочерними представлениями, что позволяет использовать многие компоненты в библиотеке Design.

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

в этой ссылке вы увидите демо-видео всех вышеупомянутых просмотров.

надеюсь, что это поможет:)

Ответ 2

Еще одно замечание. Поскольку ОП специально спросил

Кроме того, многие из классов libabry, поддерживающих дизайн, FloatingActionButton, SnackBar, AppBarLayout и т.д. Ведут себя по-разному при использовании внутри CoordinatorLayout.

И я думаю, это из-за этого.

КоординаторLayout - это супермощный FrameLayout.

Кнопка FAB, SnackBar работает над концепцией FrameLayout, и поскольку у CoordinatorLayout есть функции FrameLayout, это может заставить другие представления вести себя по-другому!

Ответ 3

Что такое координаторLayout? Не позволяйте причудливому имени обмануть вас, это не что иное, как FrameLayout на стероидах

Чтобы лучше понять, что делает CoordinatorLayout, вы должны прежде всего понять/иметь в виду, что это значит для Координаты.

Если вы Google слово

координат

Это то, что вы получаете:

введите описание изображения здесь

Я думаю, что эти определения помогают описать, что делает CoordinatorLayout самостоятельно, и как видят в нем представления.

A CoordinatorLayout (ViewGroup) приносит различные элементы (детские представления) (̶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̶) ̶ макет в гармоничные или эффективные отношения:

С помощью CoordinatorLayout дочерние представления гармонично работают вместе для реализации удивительных поведений, таких как

перетаскивание, прокрутки, прогибы или любые другие жесты.

Представления внутри координатораLayout ведут переговоры с другими, чтобы эффективно работать вместе, указав эти Поведение

A CoordinatorLayout - превосходная функция Material Design, которая помогает создавать привлекательные и гармонизированные макеты.

Все, что вам нужно сделать, это обернуть ваши дочерние представления внутри 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

Открыть

введите описание изображения здесь

Closed

введите описание изображения здесь

Ответ 4

CoordinatorLayout - это, по сути, макет кадра с множеством возможностей, очевидный из названия, он автоматизирует координацию между своими детьми и помогает строить красивые виды. Его внедрение можно увидеть в приложении Google Play Store. Когда панель инструментов рушится и меняет цвета.

Ответ 5

Чтобы дать быстрый снимок того, что полезно в Документация для Android:

Используйте CoordinatorLayout для простого управления реляционным поведением ваших просмотров,

Например, если вы хотите, чтобы ваш ToolBar сбрасывался или скрывался. Google сделал это очень легко, представив AppBarLayout и CollapsingToolbarLayout, которые лучше всего работают в режиме CoordinatorLayout.

Другая наиболее распространенная ситуация - это когда вы хотите, чтобы FloatingActionButton придерживался нижней части вашего CollapsingToolbar и перемещался вместе с ним, помещая их под координаторомLayout и используя app:layout_anchor="@id/YourAppBarId" для клей (!) и app:layout_anchorGravity="bottom|end" как вам будет достаточно, чтобы увидеть волшебную работу!

Используя этот макет в качестве контекста, дочерние представления будут лучше взаимодействовать и вести себя разумно, потому что они будут знать друг о друге через контекст CoordinatorLayout, это означает, что ваши кнопки FloatingAction больше не будут перекрываться с помощью snackBar и др.

это были просто краткое изложение наиболее полезных частей, поэтому, если вы хотите сэкономить больше времени на анимацию своего приложения, это будет стоить того, чтобы у него было немного более глубокое погружение в тему.

см. Шаблон активности просмотра прокрутки Google