2014-12-13 2 views
4

Я работаю над этим приложением, и я хотел бы реализовать свернутую анимацию, похожую на приложение «Контакты», я не смог найти учебник, который работает с панелью инструментов в библиотеку поддержки.Как сделать анимацию панели инструментов, как приложение «Контакты» в Lollipop

Вот видео, показывающее анимацию: http://material-design.storage.googleapis.com/publish/v_2/material_ext_publish/0B0NGgBg38lWWZ1F2b1pUOGFiZHc/patterns-scrollingtech-scrolling-070801_Flexible_Space_with_Image_xhdpi_002.webm

+1

см. Http://stackoverflow.com/questions/27070079/expand-collapse-lollipop-toolbar-animation-telegram-app. Telegram делает то же самое. – peguerosdc

ответ

2

ниже код реализует действие Развернуть/свернуть панель инструментов.

В основном мы будем иметь
CoordinatorLayout (FrameLayout)
AppBarLayout (вертикальный LinearLayout, который реализует многие из особенностей материала конструкций),
CollapsingToolbarLayout (обертка для панели инструментов)
ImageView и панель инструментов

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:fitsSystemWindows="true" 
    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" 
     android:fitsSystemWindows="true" 
     app:contentScrim="?attr/colorPrimary" 
     app:expandedTitleMarginEnd="64dp" 
     app:expandedTitleMarginStart="48dp" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 


     <ImageView 
      android:id="@+id/header" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@drawable/logo" 
      android:minHeight="300dp" 
      android:scaleType="centerCrop" 
      app:layout_collapseMode="parallax" /> 

     <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:minHeight="?attr/actionBarSize" 
      app:layout_collapseMode="pin" /> 


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


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

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

Observation 
- FrameLayout is necessary app: layout_behavior = "@string/appbar_scrolling_view_behavior" 
-TOOLBAR Not need backgroud, insert the color in the attribute app:contentScrim = "?Attr/ColorPrimary" from our CollapsingToolbarLayout 

В классе

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
mCollapsingToolbarLayout = (CollapsingToolbarLayout)findViewById(R.id.collapsing_toolbar); 
mCollapsingToolbarLayout.setTitle("YourTitle"); 
setSupportActionBar(toolbar); 
1

Я знаю, вопрос старый, но, в случае, если кто-то по-прежнему нуждается в этом, недавно Google выпустил библиотеку дизайна нового материала, который имеет этот компонент. Он называется CoordinatorLayout. Пример реализации ниже:

<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"> 

    <! -- Your Scrollable View --> 
    <android.support.v7.widget.RecyclerView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
    <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> 

Fuurther информация может быть достигнута здесь: http://android-developers.blogspot.ch/2015/05/android-design-support-library.html

Смежные вопросы