I'm trying to make a card with a working MaterialContainerTransform animation, and so far I've only been able to get as far as this. But .transform() part is "Unresolved reference: transform" and i don't get why.
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()
}
}
}
This is my gradle dependences
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")
Also, if you have any better ideas than this kind of code for creating ContainerTransform animation between collapsed and unfolded fragment cards, I'd be very happy for ideas, then I'm like 0 in Kotlin so far.
Because there is no such function. Here's the docs for the class: https://developer.android.com/reference/com/google/android/material/transition/MaterialContainerTransform Notice there is no transform function mentioned, nor does any of its parent classes have one. Since I'm not sure what you meant to do there, I'm not sure what you actually meant to call. Maybe start() ?