Navigation Basics in Jetpack Compose
🏆 My Online Courses
⭐Discount Coupon: LAUNCH-STEVDZA-SAN
stevdza-san.com
🐱👤 Wanna become a member? Join!
/ @stevdzasan
📸 Instagram
/ stevdza_san
With this video I'm starting a new tutorial series about Navigation in Jetpack Compose. This first video in this tutorial series will be an introduction video where you will learn some basics, about nav controller, nav host, how to declare destinations in your navigation graph, how to set the default start destinations, how to navigate between different composable screens, how to pop off a back stack when navigating etc. Watch the whole video to learn more about it! :)
Navigation Compose Playlist: • Navigation in Jetpack ...
⌚Timestamps
0:00 - Introduction
1:46 - Create Screen Composables
4:04 - Screen Holder Class
5:42 - Add Nav Host Controller
6:16 - Add Nav Host
7:36 - Nav Graph and Destinations
9:05 - Navigate to Detail Screen
10:36 - Navigate Back
11:38 - popBackStack()
12:06 - Navigate Back Explicitly & Pop Back stack
13:46 - Conclusion
Пікірлер: 134
Be sure to add dependency: 🙃⬇ implementation "androidx.navigation:navigation-compose:2.4.0-alpha10"
@rahmataulia
2 жыл бұрын
still alpha? is it ready for production release?
@StevdzaSan
2 жыл бұрын
@@rahmataulia Yeah it is.
@Sj-yf2jg
Жыл бұрын
Source code link please?
The only youtuber with direct and usable approach. For the first time I understand jetpack navigation. It's so hard without a mentor. Not all heroes wear cape! Thank you!
legendo ti si zvijer sto se tice programiranja! svaka cast! tek sam na pocetku jetpack composea, ali kad to savladam preko udemy-ja uzimam i tvoje kurseve definitivno!
Man, I'm so glad I've found you. Such consise and clear instructions, with extra information about each element you are discussing which I appreciate listening to for stuff I don't understand, but also for concepts I do. Thank you! 😊
Thank you so much for the video. It helped clear some confusions I had around Navigation. Using a simplified example made it easy to focus on the navigation aspect more than the UI and different screens.
You deserve more subs with the high-quality content you are providing especially for Jetpack Compose. Learning Compose from the former way of doing things of View and XML is difficult. You made my life easier haha
@StevdzaSan
6 ай бұрын
Thanks! I'm really happy that I can help 😊
thank you from the bottom of my heart
that was exactly what I was looking for, great !
Easiest explanation and practical way to integrate it, the same architecture can be used in live projects.
This video helped me to understand Compose better. Thanks alot!
Great video!! Cristal clear and easy to understand the whole process. Out of this topic, would you tell me where to start the search to import a text file into a data class? Thank you for sharing your knowledge. Thanks!
Thank you. Excellent tutorial.
Rhank you so much for your help!! I really learn a lot watching your videos! Thank you!
@StevdzaSan
Жыл бұрын
I'm glad I can help! 🙏
Very clear explaination. I watch around 5 videos to understande navigation but I didn't get it. But you explained it realy well. Thanks.
How did I miss this gold this long
Thanks a lot brother , it was incredibly helpful .
U R the best!!! Good luck!
Best tutorials I've come across lately
@StevdzaSan
2 жыл бұрын
Thanks buddy! 💜
Thank you!)
Thank you, it's helpful. 👍
Thanks!! Amazing
Amazing content as always Stefan, love it
@StevdzaSan
2 жыл бұрын
Thanks buddy, I'm glad to hear that! 😊
@slayer5171
2 жыл бұрын
@@StevdzaSan Where to find source code for this video? I look at your github account but still couldn't find it.
@StevdzaSan
2 жыл бұрын
@@slayer5171 I haven't uploaded.
Great video, thanks
That was really very useful video. Thank you very much
Frankly, it’s difficult for a beginner to understand how Navigation works in your new To-Do App, the explanations in the course are too short and superficial. Meanwhile, the topic is important and big enough, there's many approaches. And oops! Tutorial series! I didn't even expect such happiness:] Thank you very march, Stefan!
@StevdzaSan
2 жыл бұрын
I've set the course level to be intermediate. It can be troublesome for someone who's just getting introduced with Android architecture components. However this series should be enough for beginners who are slowly adapting to Jetpack Compose. 🙌👍
@abovemediocrity245
9 ай бұрын
Why does Android make it so difficult to do a simple navigation within the app?
My man thank you, great as usual.
@StevdzaSan
2 жыл бұрын
Thanks buddy 🙏 💜
Thank you. Jetpack Compose is a big mess of a tool for me, and this helped a lot to get my project started 👍👍
really professional cooool
thank you nice work ❤️❤️❤️
Thank you for the video. Super useful!
@StevdzaSan
2 жыл бұрын
You're welcome buddy 🙌
That was quite helpful
More videos on jetpack navigation, please... I am struggling with how to save the composable state which is populated with a coil image when navigated away and back to a composable
helpful video, thanks
Thank You. This video is very much helpful for me. I am finding this kind of video. ❤️
@StevdzaSan
2 жыл бұрын
I'm happy for that!
Thank you for this!
Thank you. Very informative tutorial
@StevdzaSan
2 жыл бұрын
More to come, stay tuned! 👌
Thanks!
My android Teacher ♥️
Thank you from Russia!
@StevdzaSan
2 жыл бұрын
Love to all my Russian followers 🇷🇺 🪆 🙏
Great. Thank you so much.
@StevdzaSan
Жыл бұрын
You're welcome buddy.
Very straightforward and concise tutorial. Thanks a lot! Also you might want to slow down the coding a bit since some lines are skipped.
Awesome !!!!! Thank you :)
@StevdzaSan
2 жыл бұрын
Glad to help! 😊
Should the action of the navigation be passed as a parameter so that the screens are isolated and better for testing? for example: HomeScreen( onNavigateToDetail () -> Unit ) So the NavHost is the one that manages the whole app navigation
Thank you. Your video was well done and well explained. You should submit it to Google documentation.
Wonderful
great video
You are the best
Awesome m8 son
thank you sir
awesome
super explanation 🔥
@StevdzaSan
2 жыл бұрын
Glad you like it buddy
Than you sir, staractivity is more concise. Kinda new learning curve of my IQ is very low sad. Thanks again. This is compose not activity like one page app react js.
Nice
how can we navigate between activities using navigation component and jetpack compose?
do you have a github repo where the final project is saved?
When compiling I got the error "java.lang.IllegalStateException: 2. expected value parameter count to be higher: rememberNavController( )"... Any ideas?
Thanks a lot! Are you also planning to make video about rxAndroid?
@StevdzaSan
2 жыл бұрын
I'm not usign RxJava.
The best video
@StevdzaSan
2 жыл бұрын
Damn right!😉
Does this only apply to android or can the navigation components also be used for desktop apps?
whare are the dependencies used?? and the gradle set up
Supppose I am sending other params in my LoginPage like @Composable fun LoginScreen( viewModel: LoginViewModel, navController: NavController ) { ... } then in this case how I only send LoginScreen(navController = navHostController) in my LoginScreen in SetupNavGraph class. it is showing error because viewModel is also required??
Thanks
@StevdzaSan
2 жыл бұрын
Thank you! ❤🚀
Nice video and very helpful. Thank you for your hard work ❤ is it possible to have Shared element Transition with Jetpack Compose, like in XML we have to add "android:transitionName = "example" " to make an object transform from On Activity/Fragment to another?
@StevdzaSan
2 жыл бұрын
Android team is working on that feature. 🚀
Very useful video! Are you planning to continue this series on Navigation in Jetpack Compose?
@StevdzaSan
2 жыл бұрын
Just released the new video in this series, check it out on my channel. And yeah there will be more videos! 😊
Hi Stevia-San, I am new to Jetpack/Kotlin/Android, I did develop three apps for IOS, I want to red0 these now for Android, can you use Activity file instead of plan *.kt files to navigate to and from, thanks let me know
Hi, how to pass data when we navigate to other screen?
Accolades tot you my big friend, nice work, I have been watching all your videos, please when are we expecting something like news app with jetpack Compose, and chat app with jetpack compose,
@StevdzaSan
2 жыл бұрын
Will work on a new course and a new app. 🤜🤛
Hi this video has been a lifesaver .
@StevdzaSan
2 жыл бұрын
You don't need startActivity. Because with Jetpack Compose you'll gonna need only a single activity.
@sheharable
2 жыл бұрын
@@StevdzaSan Yes I did it by your method finally ! Thanks so much
I have a problem of duplication class formed what I do ??
I am working on Navigation Component with same "androidx.navigation:navigation-compose:2.4.0-alpha10" dependency. I have 3 different nav graphs for my bottom navigation view. Where i have FragmentA> FragmentB > Fragment C in sequence in any one graph. Now the user is at Fragment C and he/she click again on the selected menu item from the bottom navigation. Using navigateUp() method works fine but it follows path is FragmentC to FragmentB then Again I need to call navigateUp() for FragmentB to FragmentA. but I want that if the user clicks on the bottom menu item as reselected then he navigates back to the root fragment that is Fragment A. How can I do this kind of stuff?
@StevdzaSan
2 жыл бұрын
launchSingleTop maybe if I understood correctly 🤔
@harshpatel-bt5wr
2 жыл бұрын
@@StevdzaSan i had tried but its not working. i want like whether how many sub child I had go inside but when I click same bottom menu item it should clear all stack and navigate me to home fragment for that particular graph.
How to prevent re-render of previous screen when navigating back - Jetpack Compose? Please, help me.
java.lang.ClassCastException: java.util.LinkedHashSet cannot be cast to java.util.List I got exception while Using NavHost
I set an Icon to be clickable and when clicked it is supposed to navigate to a different screen, but the app just crashes. Any reasons that could happen? Everything else is set up the similar to this tutorial. @Composable fun MainMenu(navController: NavController) { Row( modifier = Modifier .padding(bottom = 150.dp) .background(Color.Gray) .fillMaxWidth(), horizontalArrangement = Arrangement.SpaceEvenly, verticalAlignment = Alignment.Bottom, ) { Icon( painter = painterResource(id = R.drawable.ic_baseline_calendar_today_24,), contentDescription = "calendar", modifier = Modifier.clickable { navController.navigate(route = Screen.CalendarScreen.route) } ) Icon(painter = painterResource(id = R.drawable.ic_baseline_checklist_24), contentDescription = "mealList") Icon(painter = painterResource(id = R.drawable.ic_baseline_dinner_dining_24), contentDescription = "cookBook") } }
@StevdzaSan
2 жыл бұрын
You need to debug your app.
I used to use xml for navigation. So is this now the official way to use navigation for Jetpack compose? Thank you
@StevdzaSan
2 жыл бұрын
Yes it is
Aleluia and Amen.
Nice, I noticed that you have shifted to Kotlin. Do you think it is a good idea or should I stick to Java?
@StevdzaSan
2 жыл бұрын
Kotlin definitely 👌
@Sj-yf2jg
Жыл бұрын
Kotlin + Jetpack Compose is the new future for Android development
will navigation using intent be a bad practice
How can i get the source code
Thank to You Stevdza-san ( ノ ゚ー゚)ノ Keep Going
worked..
what if there will be LazyColumn?
@mikec4220
2 жыл бұрын
Just make the item view inside LazyColumn clickable and onClick do navController.navigate( yourRoute) - if you were referring to a List -> Details relationship . You can also add parameters to pass data to your Details screen.
idk why i am not able to excess the route variable
@StevdzaSan
2 жыл бұрын
Maybe because you didn't write val route: String, but just: route: String
You could explain the same but using good practices and not passing the navController through all the views I want to know how to do that and nobody explains it
2023: If you are having the error "java.lang.ClassCastException: java.util.LinkedHashSet cannot be cast to java.util.List" change the versions of the dependencies to: implementation 'androidx.navigation:navigation-runtime-ktx:2.5.3' implementation 'androidx.navigation:navigation-compose:2.5.3' buildscript { ext { compose_ui_version = '1.3.3' } }
@smitdas102
11 ай бұрын
Bro Thank You So much! I legit spent hours trying to figure out what I did wrong.
@______yawn6419
6 ай бұрын
i keep getting the error message "Navigation graph has not been set for NavController" what could i be doing wrong?
I'm having trouble with closed captioning in this video
Udemy should make a difference for peaple from richer countries and the not so rich.
@StevdzaSan
2 жыл бұрын
I can provide you a discount coupon code to help you out. Send me a message on Instagram.
Your videos are too helpful for me. You are too fast .
@StevdzaSan
2 жыл бұрын
What exactly do you mean when you say fast? 🤔
instead of : navController. navigate(Screen.Home.route) { popUpTo(Screen.Home.route) { inclusive = true } } I used : navController.popBackStack(Screen.Home.route, false) I tried it with inclusive true, it took me to a blank screen, but false then seemed to give me my desired result, but not sure why it has to be false here and true in your example?
how to use it with popUpToId? becuase popUpTo is deprecated
I added following lines inside build script dependencies{ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20" }. Without it the app crashed in my mobile phone.
thanks man, this is helpful
@StevdzaSan
2 жыл бұрын
🙌👊
Thanks!
@StevdzaSan
2 жыл бұрын
Thank you Andrew, I really appreciate that! 🎅😊