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 共享过渡不起作用的主要内容,如果未能解决你的问题,请参考以下文章

共享元素返回过渡不适用于片段中的 recyclerview 和 cardview

Navigation源码解析及自定义FragmentNavigator详解

使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作

我的Android进阶之旅------>Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法

使用片段共享过渡时返回过渡无法正常工作

为啥 opacity 过渡不起作用,并且 Jobs 组件突然出现没有 opacity 过渡?