【发布时间】:2017-04-14 05:06:25
【问题描述】:
在setCustomAnimations() 中,动画需要四个资源ID。不是很了解他们。如果有人对它有更清晰的了解,如果您能解释一下,将不胜感激。
假设将片段 A 添加到占位符和 backstack 中。
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.holder, fragA, FragmentA.FRAGMENT_NAME);
ft.addToBackStack(FragmentA.FRAGMENT_NAME);
ft.setCustomAnimations(R.anim.slide_in_from_bottom, R.anim.slide_in_from_top, R.anim.slide_in_from_left, R.anim.slide_in_from_right);
ft.show(frag);
ft.commit();
然后用片段 B 替换:
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.holder, fragB, FragmentB.FRAGMENT_NAME);
ft.addToBackStack(FragmentB.FRAGMENT_NAME);
ft.setCustomAnimations(R.anim.slide_in_from_bottom, R.anim.slide_in_from_top, R.anim.slide_in_from_left, R.anim.slide_in_from_right);
ft.show(frag);
ft.commit();
下次如果做一个popstack()
fm.popBackStackImmediate(FragmentB.FRAGMENT_NAME,
FragmentManager.POP_BACK_STACK_INCLUSIVE);
它将从哪个事务的动画开始运行?
/**
* Set specific animation resources to run for the fragments that are
* entering and exiting in this transaction. The <code>popEnter</code>
* and <code>popExit</code> animations will be played for enter/exit
* operations specifically when popping the back stack.
*/
public abstract FragmentTransaction setCustomAnimations(@AnimRes int enter,
@AnimRes int exit, @AnimRes int popEnter, @AnimRes int popExit);
【问题讨论】:
标签: android fragmenttransaction fragment-backstack