android - Fragment Transaction 如何与动画一起使用?

标签 android animation android-fragments

我在使用 Fragment Transaction 时遇到了一个非常烦人的情况。

在我的 Activity 中有一个 fragment 必须出现一个向上滑动的动画:

public void showConnectedToWifiCard(String ssid) {
    Bundle bundle = new Bundle();
    bundle.putString("SSID", ssid);

    ConnectedToWifiCardFragmentImpl fm =  new ConnectedToWifiCardFragmentImpl();
    fm.setArguments(bundle);

    // Begin the transaction
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

    // Replace the contents of the container with the new fragment
    //ft.setCustomAnimations(R.anim.slide_up_anim, R.anim.slide_down_anim);

    //ft.hide(fm);
    if (ft == null){
        ft.add(R.id.main_small_card, fm);
    }else{
        ft.replace(R.id.main_small_card, fm);
    }

    ft.commit();
}

我原以为 Fragment Transaction 会在动画之后立即创建 fragment (或替换),但结果是:

  • fragment 出现在 Activity 中
  • fragment 消失
  • fragment 启动动画。

我尝试将 fragment 设置为不可见/可见,但结果没有改变。

如何解决这个“眨眼”?

最佳答案

替换Fragment时制作动画,可以使用这段代码:

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

            //set customize animation here
            fragmentTransaction.setCustomAnimations(R.anim.slide_left_in, R.anim.slide_left_out,
                    R.anim.slide_right_in, R.anim.slide_right_out);

            ExampleFragment fragment = ExampleFragment.getInstance();

            fragmentTransaction.replace(R.id.fragment, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();

详情请看我的博文: http://www.devexchanges.info/2015/05/replacing-fragment-and-adding-layouts.html 希望这有帮助! :D

关于android - Fragment Transaction 如何与动画一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31756996/

相关文章:

android - 如何在图像上创建 slider

android - 在项目中时如何进入Android Studio的主屏幕?

ios - 使用 dae 文件播放动画时 SCNNode 比例发生变化

javascript - css3 动画只发生一次

android - 找不到选项来禁用离线gradle

android - Android Studio-想要1 APK,但无法正常工作

javascript - Sprite 动画Javascript?

android - 单击列表项时没有任何反应

java - 如何根据ViewPager中当前的ImageView更新父Activity中的TextView

java - 由于构造函数错误无法启动 ListView