最初は高さが0の親ボトムに揃えられたビューが与えられ、アニメーションを適用して高さがWRAP_CONTENT
になるようにします。私はこれを達成するために、レイアウトの移行を使用しています:LayoutTransitionの高さが0になると、アニメーションなしでビューが直ちに消えてしまいます
viewGroup
は
viewToAnimate
の親であると
animateLayoutChange=true
を持っており、ロジックがある
viewGroup.layoutTransition.enableTransitionType(LayoutTransition.CHANGING)
:
val params = viewToAnimate.layoutParams
if (expand && params.height == 0) {
params.height = ViewGroup.LayoutParams.WRAP_CONTENT
viewToAnimate.layoutParams = params
} else if (collapse && params.height != 0) {
params.height = 0
viewToAnimate.layoutParams = params
}
ビューがあるとき、これは素晴らしい作品拡張された;ビューは底からその高さにうまく滑ります。しかし、高さが0に設定されている場合、ビューは単に消えて、スライドしません。viewToAnimate
は、TextViews
の相対レイアウトで、何も複雑ではありません。任意の提案をいただければ幸いです。 https://www.dropbox.com/s/1pq7yh0bqx8ghif/2017_10_06_23_17_11.mp4?dl=0
ビューアニメーション化する:効果を示すビデオ(ただ消えて、テキストが滑り落ちない気づく)
<RelativeLayout>
..some other stuff...
<RelativeLayout
android:id="@+id/viewToAnimate"
android:layout_width="match_parent"
android:layout_height="0dp"
android:gravity="center"
android:layout_alignParentBottom="true"
android:background="@color/white">
<TextView
android:id="@+id/sampleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sample Text"
android:textSize="50sp"/>
</RelativeLayout>
</RelativeLayout>
「ConstraintLayout」または「RelativeLayout」と2つのボタン(表示/非表示)と下部の「TextView」のいずれかを使用してこれを再現することはできません。再現するのに必要なすべてのコードを投稿することができます(さらに、テストしているAPIレベルなどの情報)? –
@ BenP。展開と折りたたみの両方のアニメーションがあなたのために起こりますか?私のレイアウトを投稿させてください – ono
@BenPビデオとレイアウトを確認 – ono