在片段之间的共享元素转换期间拆分视图

时间:2015-06-26 14:06:04

标签: android android-fragments android-5.0-lollipop transitions shared-element-transition

我正在尝试动画片段之间的过渡。

pic1

但是在过渡开始时,视图是分开的

pic2

请告诉我如何避免这种情况?第一个视图必须在移动开始时消失。 谢谢!

@Override
public void onClickMessage(DialogItem item, View view) {
    setSharedElementReturnTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.change_image_transform));
    setExitTransition(TransitionInflater.from(getActivity()).inflateTransition(android.R.transition.fade));

    DetailsFragment fragment = new DetailsFragment();
    fragment.setDialog(item);
    fragment.setSharedElementEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.change_image_transform));
    fragment.setEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(android.R.transition.fade));

    View ava = view.findViewById(R.id.ivPhoto);
    ava.setTransitionName(DetailsFragment.AVA_TRANS);

    View name = view.findViewById(R.id.tvName);
    name.setTransitionName(DetailsFragment.NAME_TRANS);

    FragmentTransaction ft = getFragmentManager().beginTransaction()
            .replace(R.id.container, fragment)
            .addToBackStack(null)
            .addSharedElement(ava, DetailsFragment.AVA_TRANS)
            .addSharedElement(name, DetailsFragment.NAME_TRANS);
    ft.commit();

}

1 个答案:

答案 0 :(得分:0)

好像你只有一个用于共享元素转换的视图。 您必须在布局中分隔您的观点 - ImageView表示图标,TextView表示“疯狂微笑”文字。有了这个,您可以为共享元素转换指定2个元素。然后他们将分开飞行。

可以找到好的解释过渡动画here (step-by-step)