【发布时间】:2020-11-08 21:15:55
【问题描述】:
根据Material Motion Development Guide for Android,您可以通过设置以下内容让视图自动通过其共享轴进行动画处理
// Set up a new MaterialSharedAxis in the specified axis and direction.
val sharedAxis = MaterialSharedAxis(MaterialSharedAxis.Y, true)
// Begin watching for changes in the View hierarchy.
TransitionManager.beginDelayedTransition(container, sharedAxis)
// Make any changes to the hierarchy to be animated by the shared axis transition.
outgoingView.visibility = View.GONE
incomingView.visibility = View.VISIBLE
但是,当我调用 TransitionManager.beginDelayedTransition(container, sharedAxis) 时,beginDelayedTransition() 仅接受 (ViewGroup sceneRoot) 或 (ViewGroup sceneRoot, Transition transition) 作为参数,而不接受 (ViewGroup sceneRoot, MaterialSharedAxis),如 Material.io 指南中所述。为什么会这样?
这是我的 Gradle 依赖项
build.gradle(应用程序)
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72"
// Constraint Layout
implementation "androidx.constraintlayout:constraintlayout:1.1.3"
// Core
implementation "androidx.core:core:1.3.0"
// Material Design
implementation "com.google.android.material:material:1.2.0-rc01"
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
//Navigation Component
implementation "androidx.navigation:navigation-fragment-ktx:2.3.0"
implementation "androidx.navigation:navigation-ui-ktx:2.3.0"
}
build.gradle(项目)
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$version_kotlin"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.0"
}
【问题讨论】:
标签: android material-components-android