New nav anim motion

This commit is contained in:
GG Bond authored and Vladimir Dostoyevskiy committed 2023-12-27 22:39:35 +08:00
1 parent b81bae09d1
commit d4b2ff7de9
4 files changed
+18 -9

No files matched your search

+1
View File
@@ -234,6 +234,7 @@ dependencies {
implementation(libs.photoview) // Dead Dependency
implementation(libs.directionalviewpager) // Dead Dependency
implementation(libs.material)
implementation(libs.material.motion.core)
implementation(libs.bundles.splitties)
@@ -411,7 +411,7 @@ class MainActivity : EhActivity() {
} else {
StartDestination
},
engine = rememberNavHostEngine(rootDefaultAnimations = ehNavAnim),
engine = rememberNavHostEngine(rootDefaultAnimations = rememberEhNavAnim()),
navController = navController,
)
}
@@ -2,9 +2,6 @@ package com.hippo.ehviewer.ui
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.animation.core.tween
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
@@ -16,6 +13,9 @@ import com.hippo.ehviewer.ui.tools.DialogState
import com.hippo.ehviewer.ui.tools.LocalDialogState
import com.hippo.ehviewer.ui.tools.ProvideVectorPainterCache
import com.ramcosta.composedestinations.animations.defaults.RootNavGraphDefaultAnimations
import soup.compose.material.motion.animation.materialSharedAxisXIn
import soup.compose.material.motion.animation.materialSharedAxisXOut
import soup.compose.material.motion.animation.rememberSlideDistance
inline fun ComposeView.setMD3Content(crossinline content: @Composable () -> Unit) = setContent {
EhTheme {
@@ -45,9 +45,15 @@ inline fun ComponentActivity.setMD3Content(crossinline content: @Composable () -
}
}
val ehNavAnim by lazy {
RootNavGraphDefaultAnimations(
enterTransition = { fadeIn(animationSpec = tween(500)) },
exitTransition = { fadeOut(animationSpec = tween(500)) },
)
@Composable
fun rememberEhNavAnim(): RootNavGraphDefaultAnimations {
val slideDistance = rememberSlideDistance()
return remember {
RootNavGraphDefaultAnimations(
enterTransition = { materialSharedAxisXIn(true, slideDistance) },
exitTransition = { materialSharedAxisXOut(true, slideDistance) },
popEnterTransition = { materialSharedAxisXIn(false, slideDistance) },
popExitTransition = { materialSharedAxisXOut(false, slideDistance) },
)
}
}
+2
View File
@@ -77,6 +77,8 @@ compose-ui-util = { module = "androidx.compose.ui:ui-util" }
compose-destinations-core = { module = "io.github.raamcosta.compose-destinations:core", version.ref = "compose-destinations" }
compose-destinations-compiler = { module = "io.github.raamcosta.compose-destinations:ksp", version.ref = "compose-destinations" }
material-motion-core = "io.github.fornewid:material-motion-compose-core:1.1.0"
cronet-api = "org.chromium.net:cronet-api:113.5672.61"
cronet-gms = "com.google.android.gms:play-services-cronet:18.0.1"