共享元素从嵌套的RecyclerView转换为片段:淡出效果,移动不

时间:2017-07-31 12:35:26

标签: shared-element-transition nestedrecyclerview

共享元素事务在android.R.transition中有一组提供的transistion类型,slide_top,slide_bottom,fade,move等。

我的应用:API 21 ::单一活动

片段1: 嵌套Recyclerview:垂直回收视图,其中每个元素都是水平回收视图。后者中的每个元素都是用Picasso获取的图像视图。

片段2: 细节视图与更大尺寸的图像。

我经历了this one之类的各种帖子来构建它。 实现共享元素转换的所有核心元素都是正确构建的,因为淡入淡出和slide_top / bottom / right / left都能正常工作。

第一个片段:

setSharedElementReturnTransition(TransitionInflater.from(getActivity())
                .inflateTransition(android.R.transition.slide_top));
        Fragment pFragment = PFragment.newInstance(item, transitionName);
        pFragment.setSharedElementEnterTransition(new ChangeBounds());

        getFragmentManager()
                    .beginTransaction()
                    .replace(R.id.fragment_container, pFragment)
                    .addSharedElement(sharedImageView, 
    sharedImageView.getTransitionName())
                    .addToBackStack(null)
                    .commit();

第二片段:

public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (getArguments() != null) {
    mSId = getArguments().getString(KEY_S);
    transitionName = getArguments().getString(KEY_T);
    img = (ImageView) view.findViewById(R.id.s_image);
    ViewCompat.setTransitionName(img, transitionName);
    Log.e(TAG, "Transition name is " + transitionName);
}
PicassoWithAuth.getImageLoader(getActivity()).with(getActivity())
        .load(R.drawable.dummy).into(img, new Callback() {
    @Override
    public void onSuccess() {
        ActivityCompat.startPostponedEnterTransition(getActivity());
    }

    @Override
    public void onError() {

    }
});

}

ISSUE: 但是,我无法使移动过渡工作,即使我尝试使用changeBounds应用手动转换集并且changeImageTransformation也没有发生任何事情,新片段将替换旧片段而不进行任何转换。只有将setSharedElementReturnTransition更改为淡入淡出或幻灯片等等才能正常工作,但实际上没有任何内容可以读取边界和转换的大小。 我已经尝试过设置ActivityCompat.postponeEnterTransition(getActivity());在我的新片段上。

问题: 1. sharedElementTransition中是否存在一个基本问题,它不允许它与嵌套回收器一起使用? 2.在实施过程中是否遗漏了一些内容?

TIA

0 个答案:

没有答案