Материальный дизайн 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% его размера, он полностью исчезнет.
Пожалуйста, посмотрите этот блог, это должно быть действительно полезно.