我正在尝试制作一张具有工作 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 一样。
因为没有这个功能。以下是该类的文档:https://developer.android.com/reference/com/google/android/material/transition/MaterialContainerTransform请注意,没有提到转换函数,其父类也没有转换函数。因为我不确定你在那里要做什么,所以我不确定你到底想打电话什么。也许开始()?