Improve navigation transitions
This commit is contained in:
parent
0a897260a7
commit
d20a9187ae
@ -6,16 +6,18 @@ import android.os.Bundle
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.compose.animation.*
|
||||||
|
import androidx.compose.animation.core.tween
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.geometry.Size
|
import androidx.compose.ui.geometry.Size
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.core.view.WindowCompat
|
import androidx.core.view.WindowCompat
|
||||||
import androidx.core.view.doOnLayout
|
import androidx.core.view.doOnLayout
|
||||||
import androidx.navigation.compose.NavHost
|
|
||||||
import androidx.navigation.compose.composable
|
|
||||||
import androidx.navigation.compose.rememberNavController
|
|
||||||
import androidx.navigation.navArgument
|
import androidx.navigation.navArgument
|
||||||
import com.google.accompanist.insets.ProvideWindowInsets
|
import com.google.accompanist.insets.ProvideWindowInsets
|
||||||
|
import com.google.accompanist.navigation.animation.AnimatedNavHost
|
||||||
|
import com.google.accompanist.navigation.animation.composable
|
||||||
|
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
|
||||||
import de.mm20.launcher2.ktx.isAtLeastApiLevel
|
import de.mm20.launcher2.ktx.isAtLeastApiLevel
|
||||||
import de.mm20.launcher2.preferences.Settings
|
import de.mm20.launcher2.preferences.Settings
|
||||||
import de.mm20.launcher2.preferences.dataStore
|
import de.mm20.launcher2.preferences.dataStore
|
||||||
@ -34,6 +36,7 @@ class ComposeActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
private lateinit var widgetHost: AppWidgetHost
|
private lateinit var widgetHost: AppWidgetHost
|
||||||
|
|
||||||
|
@OptIn(ExperimentalAnimationApi::class)
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
//WindowCompat.setDecorFitsSystemWindows(window, false)
|
//WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||||
@ -42,7 +45,7 @@ class ComposeActivity : AppCompatActivity() {
|
|||||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||||
|
|
||||||
setContent {
|
setContent {
|
||||||
val navController = rememberNavController()
|
val navController = rememberAnimatedNavController()
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
|
|
||||||
var windowSize by remember { mutableStateOf(Size(0f, 0f)) }
|
var windowSize by remember { mutableStateOf(Size(0f, 0f)) }
|
||||||
@ -86,7 +89,14 @@ class ComposeActivity : AppCompatActivity() {
|
|||||||
LocalNavController provides navController
|
LocalNavController provides navController
|
||||||
) {
|
) {
|
||||||
LauncherTheme {
|
LauncherTheme {
|
||||||
NavHost(navController = navController, startDestination = "home") {
|
AnimatedNavHost(
|
||||||
|
navController = navController,
|
||||||
|
startDestination = "home",
|
||||||
|
exitTransition = { _, _ -> fadeOut(tween(300, 300)) },
|
||||||
|
enterTransition = { _, _ -> fadeIn(tween(200)) },
|
||||||
|
popEnterTransition = { _, _ -> fadeIn(tween(0)) },
|
||||||
|
popExitTransition = { _, _ -> fadeOut(tween(200)) },
|
||||||
|
) {
|
||||||
composable("home") {
|
composable("home") {
|
||||||
LauncherMainScreen()
|
LauncherMainScreen()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user