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