FragmentNavigator 共享过渡不起作用

Posted

技术标签:

【中文标题】FragmentNavigator 共享过渡不起作用【英文标题】:FragmentNavigator shared transition doesn't work 【发布时间】:2019-05-17 01:00:48 【问题描述】:

我正在使用导航架构组件实现导航,试图在ImageView 上的两个片段之间进行转换,所以我将这个android:transitionName="trans" 添加到我的xml 文件中的ImageView 第一个片段和第二个片段中,并将其添加到我的 Java 代码中

FragmentNavigator.Extras extras = new FragmentNavigator.Extras.Builder()
    .addSharedElement(imageView, "trans")
    .build();
Navigation.findNavController(v).navigate(R.id.action_mainFragment_to_addFragment,
     null,
     null,
     extras);

也尝试像这样使用Direction

MainFragmentDirections.ActionMainFragmentToAddFragment toAddFragment = MainFragmentDirections.actionMainFragmentToAddFragment();
Navigation.findNavController(v).navigate(toAddFragment, extras);

但是没有动画。以上代码来自官方documentation。

【问题讨论】:

我在androidx.navigation:navigation-fragment-ktx:2.1.0androidx.navigation:navigation-ui-ktx:2.1.0 发现了同样的问题 【参考方案1】:

尝试添加片段

override fun onCreate(savedInstanceState: Bundle?) 
        super.onCreate(savedInstanceState)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
            sharedElementEnterTransition = TransitionInflater.from(context).inflateTransition(android.R.transition.move)
        
    

【讨论】:

以上是关于FragmentNavigator 共享过渡不起作用的主要内容,如果未能解决你的问题,请参考以下文章