为什么transform()方法不可用?

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

我正在尝试制作一张具有工作 MaterialContainerTransform 动画的卡片,到目前为止我只能做到这一点。但是 .transform() 部分是“未解析的参考:转换”,我不明白为什么。

package com.example.animationtest

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.example.animationtest.databinding.FragmentCollapsedCardBinding
import com.google.android.material.transition.platform.MaterialContainerTransform

class CollapsedCardFragment : Fragment() {

    private lateinit var binding: FragmentCollapsedCardBinding

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        binding = FragmentCollapsedCardBinding.inflate(inflater, container, false)
        return binding.root
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        // Инициализация карточки
        binding.cardTitle.text = "Заголовок карточки"
        binding.cardText.text = "Краткий текст"

        // Обработчик нажатия на карточку
        binding.card.setOnClickListener {
            val startView = binding.card
            val endView = requireView().findViewById<View>(R.id.expanded_card_container)

            val transform = MaterialContainerTransform()
            transform.setStartView(startView)
            transform.setEndView(endView)
            transform.setDuration(500) // Длительность анимации
            transform.transform()
        }
    }
}

这是我的gradle依赖

implementation("androidx.core:core-ktx:1.12.0")
    implementation("androidx.appcompat:appcompat:1.6.1")
    implementation("com.google.android.material:material:1.11.0")
    implementation("androidx.constraintlayout:constraintlayout:2.1.4")
    kapt("androidx.databinding:databinding-compiler:8.2.2")
    implementation("org.jetbrains.kotlin:kotlin-stdlib:$1.9.22")
    implementation("androidx.core:core-ktx:1.12.0")
    implementation("androidx.navigation:navigation-fragment-ktx:2.7.7") 
    implementation("androidx.navigation:navigation-ui-ktx:2.7.7")  
    implementation("androidx.transition:transition:1.4.1")

另外,如果你有比这种在折叠和展开的片段卡之间创建 ContainerTransform 动画的代码更好的想法,我会非常高兴有想法,那么到目前为止我在 Kotlin 中的水平就像 0 一样。

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

因为没有这个功能。以下是该类的文档:https://developer.android.com/reference/com/google/android/material/transition/MaterialContainerTransform请注意,没有提到转换函数,其父类也没有转换函数。因为我不确定你在那里要做什么,所以我不确定你到底想打电话什么。也许开始()?

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