有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java共享元素转换不适用于FragmentTransaction。appcompat支持的库版本v7:23.2.0中的add()

执行FragmentTransaction时,共享元素转换在片段中不起作用。使用appcompat最新版本添加(),同时使用replace()可以正常工作。当我将appcompat降级到v7:23.1版本时,它正在工作。我发现这个问题与appcompact支持的版本有关,但我还没有找到任何解决方案

我用于转换的代码是

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

        // set transitions
        startFragement.setSharedElementReturnTransition(TransitionInflater.from(
                activity).inflateTransition(R.transition.change_image_trans));
        startFragement.setExitTransition(TransitionInflater.from(
                activity).inflateTransition(安卓.R.transition.fade));

        endFragment.setSharedElementEnterTransition(TransitionInflater.from(
                activity).inflateTransition(R.transition.change_image_trans));
        endFragment.setEnterTransition(TransitionInflater.from(
                activity).inflateTransition(安卓.R.transition.fade));

        // send bunddle string  of transition_name in endfragment
        /*Bundle bundle = new Bundle();
        bundle.putString(GistConstants.TRANSITION_NAME, transition_name);
        endFragment.setArguments(bundle);*/

        FragmentTransaction fragmentTransaction =  ((AppCompatActivity)activity).getSupportFragmentManager().beginTransaction();

        Fragment currentFragment = ((FragmentActivity)activity).getSupportFragmentManager().findFragmentById(R.id.main_content);

        if(currentFragment!= null) {

            fragmentTransaction.hide(currentFragment);
        }

        if(isAddToStack){
            fragmentTransaction.addToBackStack(endFragment.getClass().getName());
        }

        fragmentTransaction.addSharedElement(transitionImageView, transition_name);

        fragmentTransaction.add(R.id.main_content, endFragment, endFragment.getClass().getName());
        //fragmentTransaction.add(contentId, endFragment,endFragment.getClass().getName());
      //  fragmentTransaction.replace(R.id.main_content, endFragment);

        fragmentTransaction.commitAllowingStateLoss();

    } else {

        switchFragmentAdd(activity, endFragment, isAddToStack, isAnimate);
    }

共 (1) 个答案

  1. # 1 楼答案

    它在v7:25.1.1中起作用,但返回转换不起作用:

    startFragement.setSharedElementReturnTransition(TransitionInflater.from(
                    activity).inflateTransition(R.transition.change_image_trans)