我从来没有与碎片的工作,但我已经与滚动型类似的问题一次。我想知道滚动何时结束。你可能做的事情是实现你自己的监听器。您可以创建一个可运行的(animationTask)并进行可运行检查,以查看是否满足某些条件以确定动画是否已结束,如果没有,则继续调用可运行的。
为了做到这一点,你就需要做一个扩展FragmentTransaction自己FragmentTransaction类和声明接口(这将是你的听众)。
public abstract class M_FragmentTransaction extends FragmentTransaction {
private Runnable animationTask;
public interface OnAnimationFinish{
void onAnimationStopped();
}
private OnAnimationFinish onAnimationFinishListener;
public M_FragmentTransaction() {
super();
animationTask = new Runnable() {
public void run() {
while(!SOMETHING_TO_DETERMINE_IF_HAS_STOPPED){//has stopped
if(onAnimationFinishListener!=null){
onAnimationFinishListener.onAnimationStopped();
}
}
}
};
}
public void setOnAnimationFinish(OnAnimationFinish listener){
onAnimationFinishListener = listener;
}
public void startAnimationStart(){
animationTask.run();
}
现在在你的代码贴出你把这个你就必须寻找到转换FragmentTransaction从getFragmentManager()返回的BeginTransaction()。进入M_FragmentTransaction,因为你不能做child = parent。我不太确定这是否比它的价值更麻烦,但这种方法帮助我解决了我的问题。
希望这会有所帮助!
也许这可以回答你的问题:http://stackoverflow.com/questions/11120372/performing-action-after-fragment-transaction-animation-is-finished –