我从未使用过 Fragments,但我曾经遇到过类似的 scrollView 问题。我想知道卷轴什么时候结束。您可能会做的事情是实现自己的侦听器。您可以创建一个可运行对象(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();
}
现在,在您发布的代码中,您必须考虑转换从 getFragmentManager().beginTransaction(); 返回的 FragmentTransaction;进入 M_FragmentTransaction 因为你不能做 child = parent。我不太确定这是否比它的价值更麻烦,但这种方法帮助我解决了我的问题。
希望这可以帮助!