Kotlin 在片段之间设置 RecyclerView Item 的特定动画

问题描述 投票:0回答:1

我正在使用导航库进行导航和制作动画。当我进行转换时,我的代码就像这样;

private val onClicked = object :MyAdapter.OnItemClickListener{
    override fun onClicked(id: Int) {
        val fragment = FragmentB()
        val bundle = Bundle()
        bundle.putInt("id",id)
        fragment.arguments = bundle
        findNavController().navigate(R.id.action_fragmenta_to_fragmentb, bundle)
}

<fragment
    android:id="@+id/fragmenta"
    android:name="com.ahmetkaan.example.rw"
    android:label="fragment_a"
    tools:layout="@layout/fragmenta" >
    <action
        android:id="@+id/action_fragmenta_to_fragmentb"
        app:destination="@id/fragmentb"
        app:enterAnim="@anim/fade_in"
        app:exitAnim="@anim/fade_out"/>
</fragment>

我想做一个过渡,例如,片段 B 将从选定的 Recyler View 项目中开始增长,并在几毫秒内它将填满屏幕,因此这将是我的过渡。看起来很简单,但我使用网格布局,因此每个项目在屏幕上都有不同的位置,我不想从特定的位置开始动画,我想从项目的中间开始动画。所以它会根据物品及其位置而变化。我做了一些研究并了解到我无法使用此导航的动画组件。我遇到了过渡文件和共享元素过渡,但不知何故我无法运行我编写的代码。我不知道它们是正确的方法,但我想我无法以结构化的方式对其进行编码。这是我想要的动画的一个视觉示例;

如您所见,我触摸了左侧和顶部的一个元素,动画从该项目的确切位置开始。它的大小增加了,因此发生了转变。我怎样才能以结构性的方式做到这一点?预先感谢。

android kotlin android-fragments android-animation android-transitions
1个回答
0
投票

尝试在 Google 上搜索图书馆。因为我不在电脑前,所以这次我建议您每次启动电脑时都查找库,然后我将为您提供库。

© www.soinside.com 2019 - 2024. All rights reserved.