Fix FAB animation on lexicon / quest / map list.
This commit is contained in:
		
							parent
							
								
									7652a6a902
								
							
						
					
					
						commit
						1c3d1a1036
					
				
					 7 changed files with 20 additions and 13 deletions
				
			
		| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
package com.pixelized.rplexicon.ui.navigation
 | 
					package com.pixelized.rplexicon.ui.navigation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import androidx.compose.foundation.lazy.rememberLazyListState
 | 
				
			||||||
import androidx.compose.runtime.Composable
 | 
					import androidx.compose.runtime.Composable
 | 
				
			||||||
import androidx.compose.runtime.CompositionLocalProvider
 | 
					import androidx.compose.runtime.CompositionLocalProvider
 | 
				
			||||||
import androidx.compose.runtime.staticCompositionLocalOf
 | 
					import androidx.compose.runtime.staticCompositionLocalOf
 | 
				
			||||||
| 
						 | 
					@ -32,6 +33,10 @@ fun ScreenNavHost(
 | 
				
			||||||
    navHostController: NavHostController = rememberNavController(),
 | 
					    navHostController: NavHostController = rememberNavController(),
 | 
				
			||||||
    startDestination: String = AUTHENTICATION_ROUTE,
 | 
					    startDestination: String = AUTHENTICATION_ROUTE,
 | 
				
			||||||
) {
 | 
					) {
 | 
				
			||||||
 | 
					    val lexiconLazyListState = rememberLazyListState()
 | 
				
			||||||
 | 
					    val questsLazyListState = rememberLazyListState()
 | 
				
			||||||
 | 
					    val locationsLazyListState = rememberLazyListState()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    CompositionLocalProvider(
 | 
					    CompositionLocalProvider(
 | 
				
			||||||
        LocalScreenNavHost provides navHostController,
 | 
					        LocalScreenNavHost provides navHostController,
 | 
				
			||||||
    ) {
 | 
					    ) {
 | 
				
			||||||
| 
						 | 
					@ -46,11 +51,11 @@ fun ScreenNavHost(
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
            composableLanding()
 | 
					            composableLanding()
 | 
				
			||||||
            composableSearch()
 | 
					            composableSearch()
 | 
				
			||||||
            composableLexicon()
 | 
					            composableLexicon(lazyListState = lexiconLazyListState)
 | 
				
			||||||
            composableLexiconDetail()
 | 
					            composableLexiconDetail()
 | 
				
			||||||
            composableQuests()
 | 
					            composableQuests(lazyListState = questsLazyListState)
 | 
				
			||||||
            composableQuestDetail()
 | 
					            composableQuestDetail()
 | 
				
			||||||
            composableLocations()
 | 
					            composableLocations(lazyListState = locationsLazyListState)
 | 
				
			||||||
            composableLocationDetail()
 | 
					            composableLocationDetail()
 | 
				
			||||||
            composableCharacterSheet()
 | 
					            composableCharacterSheet()
 | 
				
			||||||
            composableSpellDetail()
 | 
					            composableSpellDetail()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
package com.pixelized.rplexicon.ui.navigation.screens
 | 
					package com.pixelized.rplexicon.ui.navigation.screens
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import androidx.compose.foundation.lazy.LazyListState
 | 
				
			||||||
import androidx.navigation.NavGraphBuilder
 | 
					import androidx.navigation.NavGraphBuilder
 | 
				
			||||||
import androidx.navigation.NavHostController
 | 
					import androidx.navigation.NavHostController
 | 
				
			||||||
import androidx.navigation.NavOptionsBuilder
 | 
					import androidx.navigation.NavOptionsBuilder
 | 
				
			||||||
| 
						 | 
					@ -11,12 +12,12 @@ private const val ROUTE = "lexicon"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const val LEXICON_LIST_ROUTE = ROUTE
 | 
					const val LEXICON_LIST_ROUTE = ROUTE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fun NavGraphBuilder.composableLexicon() {
 | 
					fun NavGraphBuilder.composableLexicon(lazyListState: LazyListState) {
 | 
				
			||||||
    animatedComposable(
 | 
					    animatedComposable(
 | 
				
			||||||
        route = LEXICON_LIST_ROUTE,
 | 
					        route = LEXICON_LIST_ROUTE,
 | 
				
			||||||
        animation = NavigationAnimation.Push,
 | 
					        animation = NavigationAnimation.Push,
 | 
				
			||||||
    ) {
 | 
					    ) {
 | 
				
			||||||
        LexiconScreen()
 | 
					        LexiconScreen(lazyListState = lazyListState)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
package com.pixelized.rplexicon.ui.navigation.screens
 | 
					package com.pixelized.rplexicon.ui.navigation.screens
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import androidx.compose.foundation.lazy.LazyListState
 | 
				
			||||||
import androidx.navigation.NavController
 | 
					import androidx.navigation.NavController
 | 
				
			||||||
import androidx.navigation.NavGraphBuilder
 | 
					import androidx.navigation.NavGraphBuilder
 | 
				
			||||||
import androidx.navigation.NavOptionsBuilder
 | 
					import androidx.navigation.NavOptionsBuilder
 | 
				
			||||||
| 
						 | 
					@ -11,12 +12,12 @@ private const val ROUTE = "locations"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const val LOCATION_LIST_ROUTE = ROUTE
 | 
					const val LOCATION_LIST_ROUTE = ROUTE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fun NavGraphBuilder.composableLocations() {
 | 
					fun NavGraphBuilder.composableLocations(lazyListState: LazyListState) {
 | 
				
			||||||
    animatedComposable(
 | 
					    animatedComposable(
 | 
				
			||||||
        route = LOCATION_LIST_ROUTE,
 | 
					        route = LOCATION_LIST_ROUTE,
 | 
				
			||||||
        animation = NavigationAnimation.Push,
 | 
					        animation = NavigationAnimation.Push,
 | 
				
			||||||
    ) {
 | 
					    ) {
 | 
				
			||||||
        LocationScreen()
 | 
					        LocationScreen(lazyListState = lazyListState)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
package com.pixelized.rplexicon.ui.navigation.screens
 | 
					package com.pixelized.rplexicon.ui.navigation.screens
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import androidx.compose.foundation.lazy.LazyListState
 | 
				
			||||||
import androidx.navigation.NavGraphBuilder
 | 
					import androidx.navigation.NavGraphBuilder
 | 
				
			||||||
import androidx.navigation.NavHostController
 | 
					import androidx.navigation.NavHostController
 | 
				
			||||||
import androidx.navigation.NavOptionsBuilder
 | 
					import androidx.navigation.NavOptionsBuilder
 | 
				
			||||||
| 
						 | 
					@ -11,12 +12,12 @@ private const val ROUTE = "quests"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const val QUEST_LIST_ROUTE = ROUTE
 | 
					const val QUEST_LIST_ROUTE = ROUTE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fun NavGraphBuilder.composableQuests() {
 | 
					fun NavGraphBuilder.composableQuests(lazyListState: LazyListState) {
 | 
				
			||||||
    animatedComposable(
 | 
					    animatedComposable(
 | 
				
			||||||
        route = QUEST_LIST_ROUTE,
 | 
					        route = QUEST_LIST_ROUTE,
 | 
				
			||||||
        animation = NavigationAnimation.Push,
 | 
					        animation = NavigationAnimation.Push,
 | 
				
			||||||
    ) {
 | 
					    ) {
 | 
				
			||||||
        QuestListScreen()
 | 
					        QuestListScreen(lazyListState = lazyListState)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,10 +61,10 @@ import kotlinx.coroutines.launch
 | 
				
			||||||
@Composable
 | 
					@Composable
 | 
				
			||||||
fun LexiconScreen(
 | 
					fun LexiconScreen(
 | 
				
			||||||
    viewModel: LexiconViewModel = hiltViewModel(),
 | 
					    viewModel: LexiconViewModel = hiltViewModel(),
 | 
				
			||||||
 | 
					    lazyListState: LazyListState = rememberLazyListState(),
 | 
				
			||||||
) {
 | 
					) {
 | 
				
			||||||
    val screen = LocalScreenNavHost.current
 | 
					    val screen = LocalScreenNavHost.current
 | 
				
			||||||
    val scope = rememberCoroutineScope()
 | 
					    val scope = rememberCoroutineScope()
 | 
				
			||||||
    val lazyListState = rememberLazyListState()
 | 
					 | 
				
			||||||
    val refresh = rememberPullRefreshState(
 | 
					    val refresh = rememberPullRefreshState(
 | 
				
			||||||
        refreshing = false,
 | 
					        refreshing = false,
 | 
				
			||||||
        onRefresh = {
 | 
					        onRefresh = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,10 +58,10 @@ import kotlinx.coroutines.launch
 | 
				
			||||||
@Composable
 | 
					@Composable
 | 
				
			||||||
fun LocationScreen(
 | 
					fun LocationScreen(
 | 
				
			||||||
    viewModel: LocationViewModel = hiltViewModel(),
 | 
					    viewModel: LocationViewModel = hiltViewModel(),
 | 
				
			||||||
 | 
					    lazyListState: LazyListState = rememberLazyListState(),
 | 
				
			||||||
) {
 | 
					) {
 | 
				
			||||||
    val screen = LocalScreenNavHost.current
 | 
					    val screen = LocalScreenNavHost.current
 | 
				
			||||||
    val scope = rememberCoroutineScope()
 | 
					    val scope = rememberCoroutineScope()
 | 
				
			||||||
    val lazyListState = rememberLazyListState()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    val refresh = rememberPullRefreshState(
 | 
					    val refresh = rememberPullRefreshState(
 | 
				
			||||||
        refreshing = false,
 | 
					        refreshing = false,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,11 +58,10 @@ import kotlinx.coroutines.launch
 | 
				
			||||||
@Composable
 | 
					@Composable
 | 
				
			||||||
fun QuestListScreen(
 | 
					fun QuestListScreen(
 | 
				
			||||||
    viewModel: QuestListViewModel = hiltViewModel(),
 | 
					    viewModel: QuestListViewModel = hiltViewModel(),
 | 
				
			||||||
 | 
					    lazyListState: LazyListState = rememberLazyListState(),
 | 
				
			||||||
) {
 | 
					) {
 | 
				
			||||||
    val screen = LocalScreenNavHost.current
 | 
					    val screen = LocalScreenNavHost.current
 | 
				
			||||||
    val scope = rememberCoroutineScope()
 | 
					    val scope = rememberCoroutineScope()
 | 
				
			||||||
    val lazyListState = rememberLazyListState()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    val refresh = rememberPullRefreshState(
 | 
					    val refresh = rememberPullRefreshState(
 | 
				
			||||||
        refreshing = false,
 | 
					        refreshing = false,
 | 
				
			||||||
        onRefresh = {
 | 
					        onRefresh = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue