スライドアニメーションでフラグメントを切り替えようとしています
このコードの使用:
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
SearchPanelFragment existingFragment = (SearchPanelFragment) manager.findFragmentByTag(SearchPanelFragment.FRAGMENT_NAME);
transaction.setCustomAnimations(R.xml.slide_down_search_panel, R.xml.slide_up_search_panel);
if (existingFragment != null) {
if (existingFragment.isVisible())
transaction.remove(existingFragment);
} else {
transaction.add(R.id.top_panel_fragment, new SearchPanelFragment(this), SearchPanelFragment.FRAGMENT_NAME);
}
transaction.commit();
これまでのところ、アニメーションを開始するのtransaction.add
はいつですか?アニメーションを終了するのはいつですか?使用しているときにしか取得できませんでしたtransaction.replace
が、古いフラグメントを同じ新しいフラグメントと交換するだけでした。必要なのは、終了アニメーションを再生して非表示にする/削除する/切り離す/必要なものをすべて非表示にすることです。
編集:私は非表示、削除、および切り離しを試みました。私が何をしても、アニメーションは再生されません。追加、表示、置換時にのみ再生されます
編集2:2番目のアニメーションに問題がある可能性があります。それらの両方を見てください。最初のものは下にスライドし、うまく機能しているようです。
下にスライド
<translate
android:duration="500"
android:fromXDelta="0%"
android:fromYDelta="-100%"
android:toXDelta="0%"
android:toYDelta="0%" />
上にスライドします
<translate
android:duration="700"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="-100%" />