Материальный дизайн layout_scrollFlags значения

Я узнаю, что мы можем использовать классные флаги, которые прокручивают как панель инструментов, так и даже контент, используя layout_scrollFlags. В моем случае у меня есть такой макет:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="snap"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabMode="fixed"
            app:tabGravity="fill" />
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>

одна из моих вкладок - fragment, а ее макет имеет Recycle View с edittext ниже RecycleView. во-первых, я хочу знать, что означает этот флаг.

google говорит:

  • SCROLL_FLAG_ENTER_ALWAYS
    При вводе (прокрутка на экране) представление будет прокручиваться по любому прокручиваемому вниз событию, независимо от того, прокручивается ли прокрутка.
  • SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED
    Дополнительный флаг для 'enterAlways', который изменяет возвращаемое представление, только изначально прокручивается назад до его свернутой высоты.
  • SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
    При выходе (прокрутка экрана) просмотр будет прокручиваться до тех пор, пока он не "рухнет".
  • SCROLL_FLAG_SCROLL
    Вид будет прокручиваться в прямом отношении к событиям прокрутки.
  • SCROLL_FLAG_SNAP
    По завершении прокрутки, если представление только частично видимо, оно будет привязано и прокручивается до ближайшего края.

Я изменил этот флаг произвольно, и в некоторых случаях мой текст редактирования ушел, пока я не прокрутил панель инструментов, а затем появилось редактирование. Я читал документы Google но я не мог понять это. Я хочу понять это простыми словами.

Ответы

Ответ 1

Я не знаю, будет ли мой ответ по-прежнему актуальным, но тем не менее. На самом деле документов достаточно, чтобы понять, что происходит вокруг, вам просто нужно немного поиграть.
Флаг прокрутки, используемый в атрибуте app:layout_scrollFlags, должен быть включен для всех эффектов прокрутки. Этот флаг должен быть включен вместе с enterAlways, enterAlwaysCollapsed, exitUntilCollapsed или snap:

  • enterAlways: При прокрутке вид станет видимым. Этот флаг полезен в случаях, когда прокрутка снизу списка и вы хотите открыть панель инструментов, как только прокручивается.
  • enterAlwaysCollapsed: Обычно, когда используется только enterAlways, панель инструментов продолжает расширяться при прокрутке вниз. Объявляется объявление enterAlways, и вы указали minHeight, вы также можете указать enterAlwaysCollapsed. Когда этот параметр используется, ваше представление будет отображаться только на этой минимальной высоте. Только когда прокрутка достигает вершины, вид расширяется до полной высоты.
  • exitUntilCollapsed: Когда установлен флаг прокрутки, прокрутка вниз обычно приведет к перемещению всего содержимого. Указав minHeight и exitUntilCollapsed, минимальная высота панели инструментов будет достигнута до того, как остальная часть содержимого начнет прокручиваться и выход из экрана
  • snap: Использование этой опции определит, что делать, если представление только частично уменьшено. Если прокрутка заканчивается, а размер представления уменьшен до менее 50% от его оригинала, тогда это представление вернется к исходному размеру. Если размер превышает 50% его размера, он полностью исчезнет.

Пожалуйста, посмотрите этот блог, это должно быть действительно полезно.