저는 Fragments로 작업 한 적이 없지만 한 번 scrollView와 비슷한 문제가있었습니다. 스크롤이 언제 끝났는지 알고 싶었습니다. 아마도 당신이 할 수있는 일은 당신 자신의 리스너를 구현하는 것입니다. 당신은 runnable (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().; 당신은 child = parent를 할 수 없으므로 M_FragmentTransaction으로 변환한다. 나는 이것이 가치가있는 것보다 더 큰 문제인지를 확신 할 수 없지만이 접근법은 나의 문제를 해결하는 데 도움이된다.
희망이 도움이됩니다.
어쩌면이 질문에 대한 답변을 수 있습니다 : http://stackoverflow.com/questions/11120372/performing-action-after-fragment-transaction-animation-is-finished –