1. ホーム
  2. android

[解決済み] スライドアップ・ダウンアニメーションでViewを表示・非表示する

2022-03-14 01:15:20

質問

私は LinearLayout で表示・非表示にしたいものを Animation を使用すると、その可視性を変更するたびにレイアウトを上または下にプッシュします。

いくつかのサンプルを見たが、どれも私のニーズに合っていない。

アニメーション用のxmlファイルを2つ作成しましたが LinearLayout .

解決方法は?

Android 3.0 (Honeycomb) で導入された新しいアニメーション API を使用すると、このようなアニメーションを非常に簡単に作成することができます。

をスライドさせる View を距離にしてダウンさせる。

view.animate().translationY(distance);

を後でスライドさせることができます。 View このように元の位置に戻すことができます。

view.animate().translationY(0);


また、複数のアニメーションを簡単に組み合わせることができます。次のアニメーションは View をその高さ分だけ下げ、同時にフェードインさせる。

// Prepare the View for the animation
view.setVisibility(View.VISIBLE);
view.setAlpha(0.0f);

// Start the animation
view.animate()
    .translationY(view.getHeight())
    .alpha(1.0f)
    .setListener(null);

をフェードアウトさせることができます。 View に戻し、スライドさせて元の位置に戻します。また AnimatorListener の可視性を設定することができます。 View に戻す。 GONE を表示し、アニメーションが終了すると

view.animate()
    .translationY(0)
    .alpha(0.0f)
    .setListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            view.setVisibility(View.GONE);
        }
    });