はじめに
Android Viewの機能であるViewAnimatorを久しぶりに触ったのですが、Viewを切り替える際に高さが最も高さの大きい子要素に依存する挙動となっており、可変にする為の方法を少し調べる形となったので、今後の備忘録的に調整方法を残しておこうと思います。
ViewAnimatorの高さを可変にする方法
可変にする方法は非常にシンプルで、以下をXMLに追加するだけで実現可能です。
main.xml
<ViewAnimator
android:id="@+id/animator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:measureAllChildren="false" >
measureAllChildrenは、ViewAnimatorのプロパティで、すべての子Viewを測定するかどうかを指定する設定になります。
デフォルトではtrueが設定されているので、非表示の子Viewも含め、すべての子Viewの高さを測定し最も高さのあるViewのサイズで固定となります。
見えていないViewの高さが欲しい場合などはデフォルトの設定でも良いと思いますが、切り替わり後の高さに違いがある場合などはUI的にスペースが空いてしまうなどのトラブルもあるかもしれません。
その場合はfalseで設定してあげる形が良いかと思います。
ご説明は以上になります。
さいごに
もう6月ですね、また年をひとつ重ねてしまうのか、、、