Android75
04/04/2022, 2:37 AMfun NavigationComponent(navController: NavHostController) {
NavHost(
navController = navController,
startDestination = Destination.Splash.path
) {
composable(Destination.Splash.path) {
Log.i("test"," Splash screen" )
SplashScreen(navController)
}
composable(Destination.Dashboard.path) {
Log.i("test"," Dashboard screen" )
DashboardScreen(navController)
}
composable(Destination.SectionPage.path+"/{type}") {backStackEntry ->
Log.i("test"," Sectionpage screen" )
SectionPage(navController, backStackEntry.arguments?.getString("type"))
}
}
}
I send navController to page.
@Composable
fun SplashScreen(navController: NavHostController?) {
val viewModel: SplashViewModel= viewModel()
viewModel.setNavigationController(navController )
I save navController inside ViewModel so i can change page. it works but navigate call screen 2 o 3 time.. i have this log
I: Splash screen
I: Splash screen
I: Splash screen
I: Dashboard screen
I: Dashboard screenIan Lake
04/04/2022, 5:37 AMViewModel
is going to be a memory leak, something we just talked about: https://kotlinlang.slack.com/archives/CJLTWPH7S/p1648769777776709Android75
04/04/2022, 11:45 AM@Module
@InstallIn(SingletonComponent::class)
class AppModule {
@Singleton
@Provides
fun providesNavigationManager() = NavigationManager()
}
class NavigationManager @Inject constructor(){
var navController: NavController?=null
}
In Activity inject NavigationManager and set navController so i can use in ViewModel by inject managerIan Lake
04/05/2022, 5:15 AM