Где должно быть установлено 'app:layout behavior'?
должен ли он быть установлен в AppBarLayout родитель брата или при первом прокручиваемом представлении внутри своего брата?
С материал дизайн для Android, есть вид что позволяет нам работать с поведением макета в зависимости от его окружения, одним из них является CoordinatorLayout, as это руководство CodePath отмечает:
CoordinatorLayout расширяет способность решить многие Эффекты прокрутки дизайна материалов Google. В настоящее время несколько способов, предусмотренных в этой структуре, которые позволяют ей работать без нужно написать свой собственный код анимации.
тот, который меня сейчас интересует:
- расширение или сжатие панели инструментов или пространства заголовка, чтобы освободить место для основного содержимого.
Итак, мы будем использовать AppBarLayout с панели инструментов С app:layout_scrollFlags установить и другой ViewGroup отпрыск к AppBarLayout С app:layout_behavior.
мой вопрос: в какой именно ViewGroup (или, может быть, View) мы должны поставить это
app:layout_behavior?
до сих пор я пробовал (и у них все работала, и все они являются братьями и сестрами AppBarLayout):
Прокрутка Вид
Первый ViewGroup внутри прокручиваемого вида
ScrollView внутри ViewGroup
и это не сработало:
- ViewGroup без прокручиваемых детей просмотра.
в интернете есть несколько примеров, но ни один из них не указывает, куда вы должны его поместить, например:
http://www.ingloriousmind.com/blog/quick-look-on-the-coordinatorlayout/ https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout https://developer.android.com/training/basics/firstapp/building-ui.html https://www.bignerdranch.com/blog/becoming-material-with-android-design-support-library/
3 ответов
, проверьте эту ссылку: https://developer.android.com/reference/android/support/design/widget/AppBarLayout.html
AppBarLayoutтакже требуется отдельная прокрутка брата для того, чтобы знать, когда прокручивать. Связывание осуществляется черезAppBarLayout.ScrollingViewBehaviorкласса, это означает, что вы следует установить поведение прокрутки, чтобы быть экземпляромAppBarLayout.ScrollingViewBehavior. Строковый ресурс, содержащий полное название класса имеющийся.
они упомянули об этом, это должно быть View, который будет показан под AppBarLayout такой:
<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.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!-- Your scrolling content -->
</android.support.v4.widget.NestedScrollView>
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent">
<android.support.v7.widget.Toolbar
...
app:layout_scrollFlags="scroll|enterAlways"/>
<android.support.design.widget.TabLayout
...
app:layout_scrollFlags="scroll|enterAlways"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
мой вопрос: в чем именно
ViewGroup(илиView) должны ли мы поставить этоapp:layout_behavior?
и по этой ссылке: http://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout
Далее нам нужно определить ассоциации между the
AppBarLayoutи вид, который будет прокручиваться. Добавитьapp:layout_behaviorвRecyclerViewили любое другое представление, способное к вложенной прокрутке, напримерNestedScrollView. Библиотека содержит специальную строку ресурс@string/appbar_scrolling_view_behaviorчто картыAppBarLayout.ScrollingViewBehavior, который используется для уведомленияAppBarLayoutкогда события прокрутки происходят в этом конкретном представлении. Этот поведение должно быть установлено в представлении это запускает событие.
app:layout_behavior должно быть установлено на те представления, которые являются прямым дочерним элементом макета координатора