How to Create Bottom Navigation using Kivymd and Python Last Updated : 02 Jun, 2022 Comments Improve Suggest changes Like Article Like Report In this article, we will see how to add the Bottom Navigation in our application using KivyMD in Python. Installation: To install this module type the below command in the terminal. pip install kivy pip install kivymd MDBottomNavigation Method: Bottom navigation is used to navigate from one screen to another with the help of the buttons in the bottom. Step 1. Import required packages. For this, we will need Builder from kivy and MDApp from kivymd package. Note: We will not be importing MDNavigation and MDScreen because we are designing our screen using kv language. Python3 # import packages from kivy.lang import Builder from kivymd.app import MDApp Step 2. Design layout. We will be designing our layout using kv language. First, we will declare the Screen widget class called MDScreen and then the child widget class. Here MDBottomNaviagation is a child class, MDBottonNavigation and MDLabel are Sub-child classes. Syntax: MDScreen: MDBottomNavigation: MDBottomNavigationItem:MDLabel: Talking about the parameters used. We will pass the name, text, and icon parameters to MDBottomNavigationItem. The name parameter is completely optional here but we use it to classify screens. The icon is used to declare icons on the screen. The text parameter is the text output on the Navigation bottom.We will pass text and halign parameters in MDLabel. Where text works the same as in MDBottomNavigationItem but it will display text on the main screen and halign is used to declare alignment of the content in the label. Python3 # writing kv lang KV=''' # declaring layout/screen MDScreen: # this will create a space navigation bottom MDBottomNavigation: # this will create a navigation button on the bottom of screen MDBottomNavigationItem: name: 'screen 1' text: 'Python' icon: 'language-python' # this will be triggered when screen 1 is selected # creates a label MDLabel: text: 'Python' halign: 'center' # this will create a navigation button on the bottom of screen MDBottomNavigationItem: name: 'screen 2' text: 'Java' icon: 'language-java' # this will be triggered when screen 2 is selected # creates a label MDLabel: text: 'Java' halign: 'center' # this will create a navigation button on the bottom of screen MDBottomNavigationItem: name: 'screen 3' text: 'CPP' icon: 'language-cpp' # this will be triggered when screen 3 is selected # creates a label MDLabel: text: 'CPP' halign: 'center' ''' Step 3. Writing the main program. To run kv file we will be using load_string() and pass our kv language in it. So we will define a function for this named build() and on-call it will load kv and return the screen. run() is used to run the class and does not require any parameters. Python3 # App class class Test(MDApp): def build(self): # this will load kv lang screen = Builder.load_string(KV) # returning screen return screen # running app Test().run() Adding above Steps: Python3 # import packages from kivy.lang import Builder from kivymd.app import MDApp # writing kv lang KV = ''' # declaring layout/screen MDScreen: # this will create a space navigation bottom MDBottomNavigation: # this will create a navigation button on the bottom of screen MDBottomNavigationItem: name: 'screen 1' text: 'Python' icon: 'language-python' # this will be triggered when screen 1 is selected # creates a label MDLabel: text: 'Python' halign: 'center' # this will create a navigation button on the bottom of screen MDBottomNavigationItem: name: 'screen 2' text: 'Java' icon: 'language-java' # this will be triggered when screen 2 is selected # creates a label MDLabel: text: 'Java' halign: 'center' # this will create a navigation button on the bottom of screen MDBottomNavigationItem: name: 'screen 3' text: 'CPP' icon: 'language-cpp' # this will be triggered when screen 3 is selected # creates a label MDLabel: text: 'CPP' halign: 'center' ''' # App class class Test(MDApp): def build(self): # this will load kv lang screen = Builder.load_string(KV) # returning screen return screen # running app Test().run() Output: Example: For this example, we will be changing parameters and changing the bottom navigation color. The steps will remain the same as above but we will have some add-ons for changing the bottom navigation color. Syntax: MDBottomNavigation: panel_color: 1,0,0,1text_color_active: 0, 1, 0, 1 panel_color will change the color of the bottom navigation. Here we are passing rgba value which means red.text_color_active will change the color of MDBottomNavigationItem when we click on it. Here the color is green. Note: The maximum value of a color you can pass is 1. We also changed text and icons for this example. Here is the list of all available icons by KivyMD. Click here. Note: You can also have a custom icon for that you just need to replace the icon parameter with your media file. Example: icon: 'icon.png' Python3 # import packages from kivy.lang import Builder from kivymd.app import MDApp # writing kv lang KV = ''' # declaring layout/screen MDScreen: # this will create a space navigation bottom MDBottomNavigation: panel_color: 1,0,0,1 text_color_active: 0, 1, 0, 1 # this will create a navigation button on the bottom of screen MDBottomNavigationItem: name: 'screen 1' text: 'Camera' icon: 'camera' # this will be triggered when screen 1 is selected # creates a label MDLabel: text: 'You have selected Camera' halign: 'center' # this will create a navigation button on the bottom of screen MDBottomNavigationItem: name: 'screen 2' text: 'Microphone' icon: 'microphone' # this will be triggered when screen 2 is selected # creates a label MDLabel: text: 'You have selected Microphone' halign: 'center' # this will create a navigation button on the bottom of screen MDBottomNavigationItem: name: 'screen 3' text: 'Wi-FI' icon: 'wifi' # this will be triggered when screen 3 is selected # creates a label MDLabel: text: 'You have selected Wi-Fi' halign: 'center' ''' # App class class Test(MDApp): def build(self): # this will load kv lang screen = Builder.load_string(KV) # returning screen return screen # running app Test().run() Output: Comment More infoAdvertise with us Next Article Python | ScreenManager in Kivy using .kv file vinamrayadav Follow Improve Article Tags : Python Python-kivy Practice Tags : python Similar Reads Kivy Tutorial Kivy is an opensource Python library that allows you to develop multi-platform graphical user interface applications on Windows, macOS, Android, iOS, Linux, and Raspberry-Pi. In addition to regular mouse and keyboard inputs, it supports multitouch events. Applications made using Kivy will appear sim 3 min read Introduction to KivyIntroduction to Kivy ; A Cross-platform Python FrameworkKivy is an open-source, cross-platform Python framework used for developing multi-touch applications with a natural user interface. It allows developers to build applications that run on multiple platforms, including Windows, macOS, Linux, iOS, and Android. Kivy is based on the Model-View-Controller 4 min read Creating your first application using KivyPrerequisites: Introduction to Kivy, Hello World in Kivy Kivymd is graphical user interface library in python based on kivy that allows you to develop multi-platform applications on Windows, MacOS, Android, iOS, Linux, and Raspberry Pi. The best thing about kivy is, it performs better than HTML5 cro 2 min read Kivy WidgetsPython | Add Label to a kivy windowKivy is a platform-independent GUI tool in Python. As it can be run on Android, iOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications.Label widget - The Label widget is for rendering text. It support 4 min read Python | Textinput widget in kivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. 👉🏽 Kivy Tutorial - Learn Kivy with Examples. Tex 3 min read Python | Checkbox widget in KivyKivy is a platform independent GUI tool in Python. Kivy applications can be run on Android, IOS, linux, and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications. Kivy Tutorial - Learn Kivy with Examples. Checkbox 4 min read Python | Dropdown list in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ???????? Kivy Tutorial - Learn Kivy with Examples. Dropdown list 3 min read Python | Window size Adjustment in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. Kivy provides you the functionality to write the code for once and run it on different platforms. It is basically used to develop the Android application, but it does not mean that it can not 4 min read Python | Scrollview widget in kivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, Linux, and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications.  Kivy Tutorial - Learn Kivy with Examples. Scroll view: The Scr 3 min read Python | Carousel Widget In KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. 👉🏽 Kivy Tutorial - Learn Kivy with Examples. Car 3 min read Python | BoxLayout widget in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ???????? Kivy Tutorial - Learn Kivy with Examples. Now in this 5 min read Python | Slider widget in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ???????? Kivy Tutorial - Learn Kivy with Examples. Slider: To w 4 min read Python | Add image widget in KivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications. ?? Kivy Tutorial - Learn Kivy with Examples. Image Widget: The I 4 min read Python | Popup widget in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. 👉🏽 Kivy Tutorial - Learn Kivy with Examples. Pop 6 min read Python | Switch widget in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ???????? Kivy Tutorial - Learn Kivy with Examples. Switch widget 5 min read Python | Spinner widget in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. 👉🏽 Kivy Tutorial - Learn Kivy with Examples. Spi 5 min read Python | Progress Bar widget in kivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. 👉🏽 Kivy Tutorial - Learn Kivy with Examples. Pro 4 min read Python | Bubble in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. 👉🏽 Kivy Tutorial - Learn Kivy with Examples. Bub 3 min read Python | Tabbed panel in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications 👉🏽 Kivy Tutorial - Learn Kivy with Examples. Tabb 2 min read Python | Scatter in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. 👉🏽 Kivy Tutorial - Learn Kivy with Examples. Sca 3 min read How to use multiple UX Widgets in kivy | PythonKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ???????? Kivy Tutorial - Learn Kivy with Examples. UX Widgets: C 3 min read ButtonsPython | Working with buttons in KivyKivy is a platform-independent GUI tool in Python as it can be run on Android, IOS, Linux Windows, etc. Kivy provides you the functionality to write the code for once and run it on different platforms. It is basically used to develop the Android application, but it does not mean that it can not be u 5 min read Python | Button Action in KivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications. ???????? Kivy Tutorial - Learn Kivy with Examples. Now in this a 3 min read Change button Color in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. In this article, we will learn about how to change the button c 3 min read Change the size and position of button in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications.In this article, we will see that how can we can change the size 4 min read Python - Rounding button corners in kivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications. In this article we will be going to learn how to round the butto 4 min read Disable Kivy ButtonIn this article, we will learn how to disable a button in kivy, there are some places where we need to disable the buttons So in this article you will learn how to do that. Kivy Tutorial â Learn Kivy with Examples. The Button is a Label with associated actions that are triggered when the button is p 3 min read Text Input box with a verification button in kivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. In this article we will learn how we can add a button with the T 3 min read Use image as a button in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. As we have discussed earlier that how to work with images and no 5 min read LayoutsPython | Float Layout in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ?? Kivy Tutorial - Learn Kivy with Examples. FloatLayout: Floatl 5 min read GridLayouts in Kivy | PythonKivy is a platform independent as it can be run on Android, IOS, Linux and Windows, etc. Kivy provides you the functionality to write the code for once and run it on different platforms. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop 3 min read Python | StackLayout in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ???????? Kivy Tutorial - Learn Kivy with Examples.  StackLayou 3 min read Python| AnchorLayout in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. 👉🏽 Kivy Tutorial - Learn Kivy with Examples. Anc 3 min read Python | Relative Layout in KivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications. Kivy Tutorial - Learn Kivy with Examples. Relative Layout:Relat 5 min read Python | PageLayout in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux, and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. Kivy Tutorial - Learn Kivy with Examples. PageLayout: The Page 4 min read Python | Layouts in layouts (Multiple Layouts) in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications.In this article, we are going to discuss how we can use layouts i 5 min read Graphics and AnimationPython | Animation in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ?? Kivy Tutorial - Learn Kivy with Examples.Animation: Animatio 2 min read Python | Animation in Kivy using .kv fileKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, Linux, and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. Animation: Animation and AnimationTransition are used to anima 3 min read Animated Floating Action Button in kivy - PythonKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications.In this article we will learn about how can we Add the Animation 4 min read Python | Line (Canvas) in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux, and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. Kivy Tutorial - Learn Kivy with Examples. Line canvas: Line is 4 min read Python | Canvas in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ???????? Kivy Tutorial - Learn Kivy with Examples. Canvas: The 4 min read Python | Ellipse (different polygons) in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. Kivy Tutorial - Learn Kivy with Examples. Ellipse: Ellipse is a 4 min read Circular (Oval like) button using canvas in kivy (using .kv file)Kivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications.In this article we will going to learn about how can we create a 3 min read User Interfaces and NavigationHow to Create Bottom Navigation using Kivymd and PythonIn this article, we will see how to add the Bottom Navigation in our application using KivyMD in Python. Installation: To install this module type the below command in the terminal. pip install kivy pip install kivymd MDBottomNavigation Method:  Bottom navigation is used to navigate from one screen 5 min read Python | ScreenManager in Kivy using .kv fileKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ScreenManager widget : The screen manager is a widget which is 6 min read File I/O and MultimediaPython | Adding image in Kivy using .kv fileKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux, and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. Kivy Tutorial - Learn Kivy with Examples. Image Widget: The Im 4 min read Python - Add audio files in kivyKivy is a platform independent GUI tool in Python. Kivy is a tool used to build cross-platform applications in Python which can run on android, IOS, Linux, Windows. Audio Widget: This module is used to load audio files in kivy. from kivy.core.audio import SoundLoader Below is the code on how you can 1 min read Applications and ProjectsPython | Make a simple window using kivyKivy is a platform independent as it can be run on Android, IOS, linux and Windows etc. Kivy provides you the functionality to write the code for once and run it on different platforms. It is basically used to develop the Android application, but it Does not mean that it can not be used on Desktops 5 min read Python | Vkeyboard (virtual keyboard) in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. Vkeyboard: VKeyboard is an onscreen keyboard for Kivy. Its opera 2 min read Python | Multiple Sliders widgets Controlling Background Screen or WindowColor in KivyPrerequisite - Slider in KivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications.In this article, we will learn How w 3 min read Python | How to use Multiple kv files in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. In this article, we will see how can we use multiple .kv files i 3 min read Python | Accordion in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. Kivy Tutorial - Learn Kivy with Examples. Accordion: The Accordi 3 min read Python | Accordion in kivy using .kv fileKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ???????? Kivy Tutorial - Learn Kivy with Examples. Accordion: Th 2 min read Python | Creating a Simple Drawing App in kivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications. Kivy Tutorial - Learn Kivy with Examples. Drawing App: In this w 4 min read Python | File chooser in kivyKivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux, and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. Kivy Tutorial - Learn Kivy with Examples. Filechooser: The Fil 2 min read How to make calculator using kivy | PythonKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications. ???????? Kivy Tutorial - Learn Kivy with Examples. In this artic 3 min read Python | Create a stopwatch using clock object in kivy using .kv fileKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications. Kivy Tutorial - Learn Kivy with Examples. Clock Object: The Cloc 6 min read Python | Create a stopwatch Using Clock Object in kivyKivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktop applications.In this, we are going to see how can we create a stopwatch using 4 min read Like