使用MapView卡片翻转动画滞后/口吃

时间:2014-11-07 21:48:01

标签: android android-animation android-mapview android-maps-v2

我正在使用ListFragment执行card flip animation,使用MapView执行另一个片段。问题是动画非常不稳定我认为是因为MapView在动画期间开始渲染地图。

是否有任何解决方法(例如在开始动画之前预先加载地图)?

1 个答案:

答案 0 :(得分:1)

我通过将两个片段同时添加到活动中并最初隐藏第二个片段而不是在动画开始之前创建和添加它来解决这个问题。

对于动画,我只是显示了第二个片段并隐藏了第一个片段。反向翻转也是如此。

第一次翻转

final Fragment fragment = new BackSideFragment();
fragment.setTargetFragment(FrontSideFragment.this, 0);

final FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.content, fragment);
ft.hide(fragment);
ft.commit();

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {

    @Override
    public boolean onMenuItemClick(MenuItem menuItem) {
        FragmentTransaction ft = fm.beginTransaction();
        ft.setCustomAnimations(R.animator.card_flip_right_in, R.animator.card_flip_right_out);
        ft.show(fragment);
        ft.hide(FrontSideFragment.this);
        ft.commit();
        return true;
    }
});

反向翻转

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.animator.card_flip_left_in, R.animator.card_flip_left_out);
ft.hide(BackSideFragment.this);
ft.show(getTargetFragment());
ft.commit();