【发布时间】:2020-08-23 14:47:24
【问题描述】:
我正在尝试重新创建与此处示例相同的动作:https://material.io/develop/android/theming/motion
具体是MaterialContainerTransform下的例子2
详细解释提出了一个从RecyclerView 转换为ViewPager 的示例,但这不适用于我的情况,即Fragment。
就目前而言,我无法使其正常工作,因为这是一个通用的搜索词,我希望找到的任何可能的示例都在包含RecyclerView 和Fragment 的通用结果的海洋中。
据我所知,只有退出时的 Hold 动画有效。
对于这个项目,我使用 Java 中的导航架构组件
片段 A
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setExitTransition(new Hold());
}
// this is the recycler view item click listener
private ItemClickCallback getClickCallback() {
return (view) -> {
FragmentNavigator.Extras extras = new FragmentNavigator.Extras
.Builder()
.addSharedElement(view, view.getTransitionName())
.build();
NavHostFragment
.findNavController(this)
.navigate(R.id.action_navigation, null, null, extras);
};
}
片段 B
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setSharedElementEnterTransition(new MaterialContainerTransform());
}
就是这样。单击已实现或未实现的项目时没有区别,除了Hold 动画导致的延迟。
这是动画库中的错误还是没有正确完成?文档没有明确说明如何专门针对这种情况实施此操作,并且我认为由于缺少文档而没有正确完成。
【问题讨论】:
标签: android android-fragments android-recyclerview navigationcontroller android-motionlayout