いくつかのボタンのコンテナとして使用するLinearLayoutと、ユーザーが「表示」ボタンを押したときにレイアウトが下にスライドするような印象を与えるために高さをアニメーション化するテキストビューがあります。
xmlでLinearLayoutをlayout_height="0dp"およびvisibility="gone"に設定しました。次に、コンテンツをラップするために必要な高さで表示されるように設定します。現時点では、アニメーション化すら問題が発生しています。ラップコンテンツの高さは気にしないでください。
アニメーション化するための私の方法は次のとおりです。
private void toggle(final LinearLayout v) {
v.setVisibility(View.VISIBLE);
ValueAnimator va = ValueAnimator.ofInt(0, 300);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Integer value = (Integer) animation.getAnimatedValue();
v.getLayoutParams().height = value.intValue();
v.invalidate();
}
});
va.start();
}
おそらく問題は、LinearLayoutの高さをどのように設定するかです。それとも、ValueAnimatorの機能を誤解していますか?Chet Haaseによるブログ投稿を見回しましたが、特定の高さのアニメーションの例は含まれていません。また、3.0以降のAPIを使用して高さのアニメーションを操作する方法の良い例を見つけることもできませんでした。これについての助けが欲しいです、ありがとう!