Bottom Navigation with Jetpack Compose
🏆 My Online Courses
⭐Discount Coupon: LAUNCH-STEVDZA-SAN
stevdza-san.com
🐱👤 Wanna become a member? Join!
/ @stevdzasan
📸 Instagram
/ stevdza_san
In this video I'm going to show you how to implement Bottom Navigation Bar into your Android application using Compose Navigation! Watch the whole video to learn more about it! :)
💻 Source code: github.com/stevdza-san/Bottom...
⌚Timestamps
0:00 - Introduction
0:35 - Bottom Screen holder class
2:14 - Add MainScreen
3:03 - Create BottomNavGraph
4:30 - Create BottomBar
6:17 - Add Item
9:50 - Recap
10:39 - Run the App
11:28 - Unselected Items Visibility
13:12 - Handle Back Stack
14:40 - Conclusion
Пікірлер: 123
You are the most exceptional KZread instructor, effortlessly simplifying every concept. I am gaining a wealth of knowledge from you, and I aspire to become one of the top Android experts in the near future.
To those whose watching this in mid 2023. If you're having problems importing BottomNavigation and BottomNavigationItem. It's because material3 uses a new one. You can try this one NavigationBar { items.forEachIndexed { index, item -> NavigationBarItem( icon = { Icon(Icons.Filled.Favorite, contentDescription = item) }, label = { Text(item) }, selected = selectedItem == index, onClick = { selectedItem = index } ) } } But still a great vid!
@tristanbocook6311
6 ай бұрын
youre a god and saved me
@devacc9958
6 ай бұрын
Thank you very much
@sinbad552
2 ай бұрын
alternative for selected and unselected property in NavigationBarItem?
Thank you Stefan, always easy to understand your tutorials. Please keep them coming.
@StevdzaSan
2 жыл бұрын
Thanks! Yeah, I'll continue my Jetpack Compose journey, definitely! 🚀😊
You're the best instructor on youtube, Because you are simplifying the tutorials to everyone who watching your videos, Keep going and never stop Stevdza
@StevdzaSan
Жыл бұрын
Thanks buddy 💜🙏
Great man! I really appreciate your teaching skills!!
Very good video as always, what I didnt actually like is the navigation with compose, too much complicated when compared to the Navigation Library we already have when working with XML
Thank you - you explain it so well!
Thanks for your work man!!
@StevdzaSan
2 жыл бұрын
You're welcome! 🚀
Great video!
Thanks!
Awesome 🔥
Really great tutorial. Thank you! What's a good way to handle more than 8 screens? I have seen some apps use a hamburger or a 'more' icon on the right. How could we implement that? A thousand thanks!
Man you are amaizing
Thank you Stefan.
@StevdzaSan
2 жыл бұрын
You're welcome buddy! :)
Thanks great job. I need more
@StevdzaSan
2 жыл бұрын
I will continue uploading videos for Jetpack Compose.
Thank you for your good tutorial 🙏
@StevdzaSan
2 жыл бұрын
Glad I can help buddy! 💜
Amazing, Plz also make a video on how to integrate payment gateway in jetpack compose.
Really a great video, thanks
@StevdzaSan
2 жыл бұрын
🙌🙌
so if i want to add destination ( not for bottom navigation ) , do we need to make another screen class or just add another NavHost on MainScreen ?
Thank you for Awesome video and the Nested Navigation video. If you check comments lots of people want to know how would you structure following. Like a navGraph for a login flow, and a navGraph for bottom nav when user is logged in Login Screen, MainScreen which has bottom navigation bar. There is no much resource available for this (common) problem. And on stackoverflow few people are trying to solve using Two Navhost with different NavHostController. And nobody knows if this approach is correct. They are using because it works. And I have seen you commenting somewhere that we dont need two NavController for two Navhost. Appreciate if you could make video on this. Would love to see how you would solve the problem.
@StevdzaSan
2 жыл бұрын
Yeah I've received a lot of questions about it. I'll definitely think about making video on that topic. 🤔
Wow great ❤️.
nice on stef
Thanks for detailed tutorials. Have you anything on navigation drawer?
@StevdzaSan
2 жыл бұрын
Not yet, I'll keep that in mind for future video tutorials. 👍
Thanks for the nice explanation. I have some issue when randomly and quickly switched between bottom nav item the app crashes.Can I get some help.
Good videos!. How can I select the startDestination based on some condition on starting the app?
Many thanks for the explanation. Is it possible to have to more than one scafffold? Meaning 2 or more graphs, one per each bottom navigation item? How to mix each bottom item with its screen flow? Would much appreciate a mix between bottom navigation and multigraph explanation, Many thanks, keep up
@StevdzaSan
2 жыл бұрын
Watch my video about nested navigation. 👌
Make some big projects using jetpack compose
How is it possible to show a detail screen from home screen which show as full screen outside bottom screen .
Muito bom, procurei tutoriais em português, mas não encontrei. Esse deu certo
Thanks for your video. I improved MybottomNavigation. It will be greate if make video about images from API service
Nice
Is there a shorter and simpler way to implement this?
Hey, awesome video. Is there a way to not have content underneath the bottom bar? it seems to be "floating" and overlaps stuff on the bottom of the screen
@StevdzaSan
2 жыл бұрын
Check out this answer: stackoverflow.com/questions/66573601/bottom-nav-bar-overlaps-screen-content-in-jetpack-compose
Teşekkürler
Nice explaination. Can we have the repo link of the sample?
Perfect explanation! Is there a way to change between tabs swipping right or left?
@mikejawoski5904
Жыл бұрын
You'll probably want to implement a ViewPager instead.
@valdompinga3790
Жыл бұрын
@@mikejawoski5904 thanks
So this today, good content. Can create a tutorial to work with mongodb realm? Subed
If you die you are a legend!
Man, thanks for the video, u are the best. But can u do bottom bar with expandable fab ? i have some problems to do this
@StevdzaSan
2 жыл бұрын
Thank you for suggesting, I'll keep that in mind.
@Asair4ik
2 жыл бұрын
@@StevdzaSan thanks a lot. I ve tried to do it by myself but I have problems wit expanded state, everything is moving downstairs
Another useful tutorial, thanks a lot. 👍
@StevdzaSan
2 жыл бұрын
You're welcome buddy 🙏😉
Imagine spending 10minutes to set up a Bottom Nav bar with the speed of Author. In old layout, a newbie can set up navigation bar in 2 minutes.
There are limited ImageVectors to choose from. How can I change this to use a Vector Asset, please?
Thank you for your interesting tutorials! If possible, i have a question. Based on this video and the previous one (Nested Navigation), is it possible to achieve an architecture where you have a navigation like Screen -> Screen with Bottom Navigation Bar and then navigating using Navigation Bar? Thank you!
@StevdzaSan
2 жыл бұрын
Everything that can be achieved with Navigation component can be achieved with Compose Navigation as well.
@frax84
2 жыл бұрын
@@StevdzaSan That's a wise answer xD. I asked because I don't get how you can manage the NavHost in such situation. In fact, for standard Screen2Screen navigation NavHost is usually called at high scope (let's say in setContent function) while in the NavBottomBar case you call it in the innerpadding scope of Scaffold composable to avoid making the NavBottomBar disappear at every transaction
@StevdzaSan
2 жыл бұрын
@@frax84 Watch my video about nested navigation, you can have multiple nav graphs in your app 👍: kzread.info/dash/bejne/ZKd_0Kmln6ewlpM.html
@frax84
2 жыл бұрын
@@StevdzaSan Yes i already watched (and liked!) it. Unfortunately i am not able to apply it to my case. Probably what i would need would be 2 different NavController to associate with 2 different NavHost: one in charge of Splash->MainScreen navigation, the second one in charge of navigating with BottomNavBar. Because i'm a noob, i don't know how to get 2 NavControllers -.-'
@StevdzaSan
2 жыл бұрын
@@frax84 You don't need two Nav Controllers for two NavHost's. You can pass one to both of them.
How do you pass arguments between bottom navigation screens?
Thank you for the video! Is it possible to use BottomNavigation with nested navigation to show it only in MainNavGraph?
@StevdzaSan
2 жыл бұрын
You can achieve everything you want, even create two different NavHosts.
@slayer5171
2 жыл бұрын
Yes, this is exactly what I am curious about.
@slayer5171
2 жыл бұрын
@@StevdzaSan How to implement two different navhost?
@cumahaznedar1191
2 жыл бұрын
@@slayer5171 Bro, I have this problem, Did you fix that? (Nested Navigation with Bottom Bar)
@slayer5171
2 жыл бұрын
@@cumahaznedar1191 I am using state and just pass a handler to show and hide bottom navigation bar.
Отлично
Hello sir, how can I navigate from single screen(splash screen) to bottom navigation screen
How I can change the color of the bottom bar?
I see a fade animation when making transition betwen screens in my app, someone know how to disable that?
Hi, really appreciate this video. I got some problems. The thing is that I use the same way to implement a bottom navigation, but once I trigger the button on one of my screen to navigate to another screen outside the bottom navigation, the app crash immediately. I use the same method to build navigation as in your last video. Can anyone help me?
@StevdzaSan
2 жыл бұрын
I'll soon make a video about nested navigation with bottom navigation, in the next week probably. 👍
thanks for this, is there a way to prevent the page from reloadin everytime you reopen it?
@StevdzaSan
2 жыл бұрын
Save and restore screen state with nav controller when navigating away.
Thanks for this video! But slow down please.
Hello, How can I hide the Bottom Navigation in the next screen?
Hi! How change color Bottom bar ?
Thanks a lot Can we make a custom one with rounded corners
@StevdzaSan
2 жыл бұрын
Yes we can, I'll think about making a shorts video. Basically you can achieve that with a simple modifier.
Again, You are better than Phillps L. lol
how to change background color sir
Cant use delegate currentBackStackEntryAsState() 5:40 also scaffold gives an error - Content padding parameter it is not used 1) fixed delegate with some kind of import with alt+enter that for some reason wasnt added automatically 2) Scaffold fix = @SuppressLint("UnusedMaterialScaffoldPaddingParameter") annonation. Omg compose is garbage. Thx for video anyway
Thank you for tutorial Sir. unselectedContentColor parameter not working for me. How do I fix that? I am switching to dark mode and my app is not changing colour according to the theme.
@rpitpatel1004
Жыл бұрын
Found an error in my code. I did not wrap my scaffold in my app theme. 😊 But unselectedContentColor parameter not working for me. Do you have any suggestions for that?
@cufflink919
Ай бұрын
Someone posted a fix on the next video in the playlist. "... use NavigationBar and NavigationBarItem from material3 in place of BottomNavigation and BottomNavigationItem"
BottomNavigation and BottomNavigationItem is not working right now
@gara7723
7 ай бұрын
Did you find out the solution?
@sadiquereyaz
4 ай бұрын
exactly
@rosylinemilia6123
2 ай бұрын
Add the dependency i.e androidx. compose .material: material :1.6.5
Bm - 11:28
Música?
But you are not explaining , you are reading what ever you are writing
You made it too long. Like if you're going to use this in bigger projects, this could make things confusing
Very frustrating to follow, you do things way to quickly
Jetpack Compose involves too much coding; it's the worst. Who suggested it to Google ? Jetpack Compose seems like a step backward, reminiscent of the early stages of Android development.
Thanks!
Thanks!
@StevdzaSan
2 жыл бұрын
Thanks again Andrew! 🙏❤
Thanks!
@madbuds
2 жыл бұрын
Nice video! But what if I wanted to use on tab Icons, resources of my own? I have accomplished that using a R.drawable resource and using painter on Icon(). But i guess this way I cannot achieve the unselectedContentColor the way you did.
@StevdzaSan
2 жыл бұрын
Hm, I haven't tried that. I guess you could try changing it's alpha state instead.
@madbuds
2 жыл бұрын
@@StevdzaSan it works. Thanks a lot! Keep up the good job!
@madbuds
2 жыл бұрын
Imagine the following scenario: what if need a authentication flow before rendering this bottom tab nav graph... like a navGraph for a login flow, and a navGraph for bottom nav when user is logged in... How would you structure this kind of navigation?