navigation drawer material desig. CollapsingToolbarLayout

Интерфейс, диалоги, темы, стили, меню
Ответить
Антон108
Сообщения: 8
Зарегистрирован: 27 фев 2015, 15:39

navigation drawer material desig. CollapsingToolbarLayout

Сообщение Антон108 » 14 дек 2015, 14:23

Необходимо запилить приложение по гайдлайнам материал дизайна. Использую navigation drawer и CollapsingToolbarLayout и никак не могу добиться эффекта плавающего toolbar:

Изображение

Нужно чтоб он разворачивался целиком только когда достигает верха списка, а находясь в середине списка и при попытке прокрутить список вверх нужно чтоб выползала только маленькая полоска тулбара (как на изображении).

Может кто-то подскажет где почитать об этом, или скажет что я не так делаю.

Код: Выделить всё

<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:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBar"
        android:layout_width="match_parent"
        android:layout_height="160dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="#00ff2f"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:titleEnabled="true">

            <FrameLayout
                android:id="@+id/frameLayoutTest"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_collapseMode="parallax"
                app:layout_collapseParallaxMultiplier="0.7">

            </FrameLayout>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="56dp"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:layout_collapseMode="pin"
                app:layout_scrollFlags="scroll|enterAlways">

            </android.support.v7.widget.Toolbar>

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>


    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</android.support.design.widget.CoordinatorLayout>

И в догонку ещё один вопрос. Меню боковое сделать и подставлять фрагменты в activity (в котором лежит боковое меню) не проблема. А как сделать так, чтобы при переходе по пунктам бокового меню менялся toolbar (для каждого пункта свой туллбар!) т.е. где-то он обычный, где-то его нет, а где-то он Collapsing.
Думал о том чтобы запихать тулбар во фрагмент. Сделал, но есть проблема. Когда используется флаг для контента app:layout_behavior="@string/appbar_scrolling_view_behavior" то неправильно рассчитывается размер фрагмента и на высоту тулбара всё содержимое смещается вниз (за экран)

Не смог ничего найти по поводу CollapsingToolbar во Fragment...

Realist
Сообщения: 134
Зарегистрирован: 08 фев 2014, 18:15

Re: navigation drawer material desig. CollapsingToolbarLayou

Сообщение Realist » 15 дек 2015, 00:22

https://github.com/chrisbanes/cheesesquare
Тут как раз такой случай, посмотрите код.

Антон108
Сообщения: 8
Зарегистрирован: 27 фев 2015, 15:39

Re: navigation drawer material desig. CollapsingToolbarLayou

Сообщение Антон108 » 15 дек 2015, 10:54

Realist писал(а):https://github.com/chrisbanes/cheesesquare
Тут как раз такой случай, посмотрите код.
Благодарю за пример. Был полезен.
Но всё же на 100% нужного поведения мне не добиться...


это что нужно (посередине списка появляется "маленький" toolbar, а когда доходим до верха раскрывается большой):

Изображение


А это что представлено в примере с gitHub:

Изображение

P.S. возможно что библиотека поддержки отрабатывает неверно?! т.е. по гайдлайнам я ставлю все флаги верно (перепробовал все варианты)

TemMax
Сообщения: 66
Зарегистрирован: 27 окт 2013, 13:46

Re: navigation drawer material desig. CollapsingToolbarLayou

Сообщение TemMax » 16 дек 2015, 21:29

Сталкивался с багом в этой либе. Да, когда контента мало и он не скроллится, то CollapsingToolbarLayout начинает вести себя некорректно

Ответить