私はAndroidでアプリケーションを開発しています。私はユーザから情報を取得するためにフローを使用しています。フローを構築するために、私はいくつかのフラグメントを使用しています。 5つのステップがあり、5つのフラグメントを使用しています。私はリストビューを使用して保存した前のレコードを表示するために別のフラグメントを使用しています。私の活動では、Expandという名前のボタンを使用しています。 Expandボタンは、フラグメントを使用して前のレコードを表示するために使用されます。ユーザーがボタンをクリックすると、フラグメントが展開され、展開ボタンのテキストが非表示に設定されます。ボタンのテキストが非表示の場合、ユーザーがボタンを再度クリックすると、フラグメントがスタックから削除され、前のフラグメントがバックスタックに追加されます。Androidでのフラグメント取引のための上下のアニメーション
例えば、FragmentA、FragmentB、FragmentC、FragmentD、FragmentEという名前の5つのフラグメントと、以前にListViewに保存されたレコードを、名前の付いたボタンのクリックイベントで表示するために使用するProjectRowsFragmentという別のフラグメントがあるとします。展開します。
ユーザがFragmentCにいて、Expandボタンをクリックしたとします。何が起こるかは、FragmentCが置き換えられ、ProjectRowsFragmentが追加されるということです。ユーザーがボタンを再度クリックすると、ProjectRowsFragmentが置き換えられ、FragmentCがバックスタックから取り込まれます。それがFragmentDだった場合、それは置き換えられ、ProjectRowsFragmentが追加されます。ユーザーがボタンを再度クリックすると、ProjectRowsFragmentが置き換えられ、FragmentDがバックスタックから取り込まれます。
私は取引を行っています。
私が望むのは、ProjectRowsFragment(レコードを表示するために使用しているフラグメント)が表示され置き換えられている間に、アニメーションを追加したいということです。表示されているときは上から下にスライドし、後ろのスタックから取り除かれると上にスライドします。
多くの試しをした後、私はスライドダウンエフェクトを達成しましたが、どのようにスライドアップアニメーションを取得できますか?
ここは私のコードです。
fragmentManager = getFragmentManager();
fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.animator.slide_in_from_top, 0, R.animator.slide_in_from_bottom, 0);
fragmentTransaction.replace(R.id.fragment_container, ProjectRowsFragment.newInstance(this.projectId));
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
projectRowsExpanded = true;
slide_in_from_top.xmlファイルは、ユーザーがボタンをクリックすると示された場合、私は
最初のステップ
を視覚化するために3枚の画像を持っている
ここ<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<objectAnimator
android:duration="600"
android:propertyName="y"
android:valueFrom="-1280"
android:valueTo="0"
android:valueType="floatType" />
</set>
ですリストが配置されます。
ユーザが指示ボタンで再びクリックします。
代わりにフラグメントにカスタムアニメーションを適用するので
でのご渡す4つのパラメータあなたの 'setCustomAnimations'。 '.setCustomAnimations(in、out)'という2つのパラメータだけを試すことができます。 –