Android新機能1 CoordinatorLayout折りたたみ効果ベース

5928 ワード

CoordinatorLayoutはGoogle IO/15大会で発表されたもので、Materialスタイルに従い、support Libraryに含まれ、AppbarLayout、CollapsingToolbarLayoutなどと組み合わせて様々なクールな効果を生み出すことができ、このブログではCoordinatorLayoutの様々なクールな効果を紹介します.
実はAndroid StudioではCoordinatorLayoutの勉強をよくしてくれています.Activityを作成するときにScrolling ActivityというActivityテンプレートがあります.Activityを作成するときにこのテンプレートを選択すると、次のような効果が得られます.
図1.gif
基本的なネスト構造は次のとおりです.


    
        
            
        
    
    
    


上のincludeで参照したXMLレイアウト


    


CoordinatorLayout
コーディネータレイアウトとも呼ばれ、supportです.デザインパッケージのコントロールなので、使用するときはcompile'comをインポートします.android.support:design:23.3.0’パッケージ.簡単に言えば、CoordinatorLayoutは、サブビューを調整し、タッチでレイアウトに影響を与える形でアニメーション効果を生成するためのsuper-powered FrameLayoutであり、その典型的なサブビューには、FloatingActionButton、SnackBarが含まれる.注意:CoordinatorLayoutはトップクラスの親Viewです.
AppBarLayout
AppBarLayoutはLinearLayoutのサブクラスで、そのサブviewにapp:layout_を設定する必要がありますscrollFlagsプロパティまたはsetScrrollFlags()をコードで呼び出してこのプロパティを設定します.AppBarLayoutのサブレイアウトには5種類のスクロールID(上のコードCollapsingToolbarLayoutで構成されているapp:layout_scrollFlagsプロパティ):scroll:画面をスクロールしたいviewはすべてこのflagを設定する必要があり、このflagを設定していないviewは画面の上部に固定されます.EnterAlways:このflagは任意の下にスクロールするとviewが表示され、高速「戻りモード」が有効になります.enterAlwaysCollapsed:最小高さ(minHeight)を定義し、enterAlwaysも定義したと仮定すると、viewはこの最小高さに達したときに表示され始め、このときからゆっくりと展開され、上部にスクロールしたときに展開されます.exitUntilCollapsed:minHeightを定義すると、このレイアウトはスクロールしてこの最小高さに達すると折り畳まれます.snap:スクロールイベントが終了すると、ビューが部分的に表示されると、縮小または展開にスクロールされます.たとえば、ビューが下部25%しか表示されていない場合は、折りたたみます.逆に、下部75%が表示されている場合は、完全に展開されます.
CollapsingToolbarLayout
CollapsingToolbarLayoutの役割は、FrameLayoutから継承され、layout_を設定する折り畳み可能なToolbarを提供することです.CollapsingToolbarLayoutに含まれるコントロール(ImageView、Toolbarなど)の応答layout_を制御できるscrollFlagsbehaviorイベントの場合、対応するscrollFlagsスクロールイベントを作成します(画面を削除するか、画面の先端に固定します).CollapsingToolbarLayoutでは、折りたたみ時のツールバーレイアウトの色をapp:contentScrimで設定し、折りたたみ時のステータスバーの色をapp:statusBarScrimで設定できます.デフォルトcontentScrimはcolorPrimaryの色値、statusBarScrimはcolorPrimaryDarkの色値です.CollapsingToolbarLayoutのサブレイアウトには、3つの折りたたみモード(Toolbarで設定されているapp:layout_collapseMode)offがあります.デフォルトのプロパティでは、レイアウトは正常に表示され、折りたたみ動作はありません.pin:CollapsingToolbarLayoutを折りたたむと、このレイアウトは上部に固定されます.parallax:CollapsingToolbarLayout折りたたむと、このレイアウトにも視差折りたたみ効果があります.CollapsingToolbarrayoutのサブレイアウトにparallaxモードが設定されている場合、app:layout_collapseParallaxMultiplierは視差スクロール係数を設定し、値は0~1である.
NestedScrollView
新しいsupport-v 4互換パッケージにはNestedScrollViewコントロールがあります.このコントロールは普通のScrollViewとあまり違いません.このコントロールはMeterial Designで設計されたコントロールで、MDの他のコントロールと互換性を目的としています.MDではRecyclerViewがListViewに代わり、NestedScrollViewがScrollViewに代わり、両方ともToolBarと対話し、アップダウン中のToolBarの変化を実現することができると言える.NestedScrollViewの名前には実は彼の役割が見えます.Nestedはネストの意味ですが、ToolBarは基本的にネストして使用する必要があります.
FloatingActionButton
FloatingActionButtonはきれいなボタンで、本質はImageVeiwです.一つ注意したいのは、Meterial DesignがZ軸の概念を導入したことです.すべてのviewに高さがあり、彼らは携帯電話の画面に1層1層貼っていますが、FloatingActionButtonのZ軸の高さは最も高く、すべてのviewの一番上に貼ってあり、viewがカバーできません.
Behavior
BehaviorはCoordinatorLayoutの直接子Viewだけが意味がある.BehaviorをCoordinatorLayoutの直接サブエレメントにバインドすれば、タッチイベント(touch events)、window insets、measurement、layout、ネストスクロール(nested scrolling)などの動作をブロックできます.Design Libraryの多くの機能はBehaviorの大量運用によって実現されている.もちろん、Behaviorは独立して作業を完了することはできません.実際に呼び出されたCoordinatorLayoutサブビューにバインドする必要があります.具体的には、コードバインド、XMLバインド、または注釈による自動バインドの3つの方法があります.上のNestedScrollViewのapp:layout_behavior=”@string/appbar_scrolling_view_behaviorのBehaviorはシステムのデフォルトであり、自分のニーズに応じてBehaviorを定義することもできます.
参考になる文章