Android:有没有办法在片段本身内收听片段的 enter/exit 动画?
Android: is there a way to listen to fragment's enter/exit animations inside the fragment itself?
我有一个 activity 和两个实现主从流程的片段。
当细节片段进入时,动画从右向左滑入。
该片段还包含一个 FloatingActionMenu (https://github.com/Clans/FloatingActionButton)。现在我想在细节片段的进入和退出动画之后为这个工厂制作动画。
到目前为止我所做的是:
在 onCreate() 片段中隐藏晶圆厂
在 onStart() 中添加了一个 postDelay() 以显示带动画的工厂(我知道这不好)
所以我想知道是否有办法将侦听器附加到执行片段进入和退出过渡动画的动画师,以便我可以相应地为 fab 设置动画
重写 public Animator onCreateAnimator(int transit, boolean enter, int nextAnim)
方法。它在片段加载动画时调用
int transit
- 过渡类型,参见this。
boolean enter
- 如果动画是 enterAnimation
,则为真
int nextAnim
- 动画的资源ID
例如:
@Override
public Animator onCreateAnimator(int transit, boolean enter, int nextAnim) {
Animator animator = AnimatorInflater.loadAnimator(getActivity(), nextAnim);
if (nextAnim == R.animator.your_animator){
animator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
}
return animator;
}
我有一个 activity 和两个实现主从流程的片段。
当细节片段进入时,动画从右向左滑入。 该片段还包含一个 FloatingActionMenu (https://github.com/Clans/FloatingActionButton)。现在我想在细节片段的进入和退出动画之后为这个工厂制作动画。
到目前为止我所做的是: 在 onCreate() 片段中隐藏晶圆厂 在 onStart() 中添加了一个 postDelay() 以显示带动画的工厂(我知道这不好)
所以我想知道是否有办法将侦听器附加到执行片段进入和退出过渡动画的动画师,以便我可以相应地为 fab 设置动画
重写 public Animator onCreateAnimator(int transit, boolean enter, int nextAnim)
方法。它在片段加载动画时调用
int transit
- 过渡类型,参见this。
boolean enter
- 如果动画是 enterAnimation
int nextAnim
- 动画的资源ID
例如:
@Override
public Animator onCreateAnimator(int transit, boolean enter, int nextAnim) {
Animator animator = AnimatorInflater.loadAnimator(getActivity(), nextAnim);
if (nextAnim == R.animator.your_animator){
animator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
}
return animator;
}