2015年6月13日土曜日

CoordinatorLayoutで困った時に確認するIssue Tracker

Android Design Support LibraryのCoordinatorLayoutを使った際に、困った既知(known issue)の問題をまとめます。

画面回転でBehaviorが正常に表示されない

AndroidManifest.xmlで、ActivityにconfigChanges属性で画面回転での再生成を追加すると、Behaviorが正常に表示されないことがあります。
ユースケースとしてはLandscapeからPortraitの画面回転で、現象が発生します。


この現象は、すでに本家Issue Trackerに登録されています。
CoordinatorLayout in design support library does not update child size on rotation
layout_behavior view height doesn't restore when keyboard goes down / ActionBar ActionView partially visible

AppBarLayoutがアニメーションしない

タッチを止めると、次のようにAppBarLayoutの部分が中途半端に残ってしまうことがあります。
Google Playアプリのようにアニメーションで全部消す/表示するには、タッチイベントとAppBarLayoutのオフセット位置、およびBehaviorのonNestedFlingを組み合わせて実装しないといけないのかな?
(ベストプラクティスを教えて欲しい)

Toolbar should settle when only partially scrolled

2015年6月6日土曜日

Android Support library v22.2で追加されたTextInputLayoutを使う

Material DesignのText fieldアニメーションが楽々に実装できるレイアウトです。
http://www.google.com/design/spec/components/text-fields.html#text-fields-single-line-text-field


実装は非常に簡単で、EditTextをTextInputLayutで囲うだけです。
    <android.support.design.widget.TextInputLayout
            android:id="@+id/textInputLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:hintTextAppearance="@style/TextInputLayoutHintAppearance">
        <EditText
                android:id="@+id/editText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="HintText"
                android:ems="10"/>
    </android.support.design.widget.TextInputLayout>




各パーツはマテリアルカラーに準じています。