2014-12-13 47 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。電報也是這樣。 – peguerosdc 2014-12-13 01:57:20

回答

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

我知道這個問題是舊的,萬一有人仍然需要它,最近谷歌已經發布了具有此組件的新材料設計庫。它被稱爲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

相關問題