首页 > 解决方案 > 如何在动画结束时移动到另一个片段

问题描述

1-在 MainActivity 的 onCreate 方法中,我们使用以下方法加载 SplashFragment:

loadFragment(new SplashFragment(), this);

2-然后在 SplashFragment 的 onViewCreated 方法中,我们有一个动画。我们想在动画结束后移动到 RegisterFragment 使用:

    @Override
    public void onAnimationEnd(Animation animation) {
        loadFragment(new RegisterFragment(), getActivity());
    }

1-作品

2-不工作!

为什么?!我们该如何解决?

注意:我们的 loadFragment 方法放在适配器类中:

 public static void loadFragment(Fragment fragment, Context context) {
        FragmentTransaction transaction = ((FragmentActivity)context).getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.frame_container, fragment);
        transaction.addToBackStack(null);
        transaction.commit();
    }

标签: javaandroid

解决方案


您可以尝试在 UI 线程上运行它,因为它可能是线程问题。

    @Override
    public void onAnimationEnd(Animation animation) {
        getActivity().runOnUiThread(new Runnable() {
               @Override
               public void run() {
                   loadFragment(new RegisterFragment(), getActivity());
               }
        });
    }

推荐阅读