Search code examples
tabskivy-languagekivymd

Cannot change Tabs text and icon colors in KivyMD


Iam trying to learn how to program with KivyMD. After doing some research and watching some tutorials iam putting a GUI together with the trail-and-error approach.

At the moment iam trying to change the colors of the Tab text and icons. After hours of online searching iam still not able to change them. The text_color_normal:and text_color_active: in the .kv file simply seems to have no effect on them. I have the feeling iam doing something fundamentally wrong here. Can somebody give me some tips how to proceed? Main.py and .KV file are below.

Thanks in advance!

from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.screenmanager import ScreenManager, Screen
from kivymd.uix.tab import MDTabsBase
from kivymd.font_definitions import fonts
from kivymd.icon_definitions import md_icons
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import ObjectProperty
from kivy.uix.widget import Widget


Window.size = (300, 500) # voor develop doeleinden mobielscherm


class Screen1(Screen):
    pass


class Screen2(Screen):
    pass


class Screen3(Screen):
    pass


class Screen4(Screen):
    pass


class Tab(FloatLayout, MDTabsBase):
    pass


class Tab1(FloatLayout, MDTabsBase):
    pass


class DemoApp(MDApp):

    def build(self):

        self.theme_cls.primary_palette = 'Red'
        screen = Builder.load_file('demo_file.kv')

        return screen

    def navigation_draw(self):
        print('navigation')


DemoApp().run()

demo_file.kv

Screen:
    NavigationLayout:

        ScreenManager:
            id:screen_manager

            Screen1:
                name: 'home_screen'

                BoxLayout:
                    orientation: 'vertical'

                    MDToolbar:
                        title: 'Home'
                        left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
                        elevation: 0
                        specific_text_color: 0,0,0,1

                    MDTabs:
                        id:android_tabs
                        tab_bar_height: '35dp'
                        background_color: 1,0,0,0.85
                        elevation: 0
                        text_color_normal: 0, 1, 0, 1
                        text_color_active: 1, 0, 0, 1
                        color_indicator: 0.95, 0.95, 0.1, 1

                        Tab:
                            text: 'Tab1'

                        Tab1:
                            text: 'chart-pie'

                    MDBottomAppBar:

                        MDToolbar:
                            title: 'Start sessie'
                            mode: 'end'
                            type: 'bottom'
                            on_action_button: app.navigation_draw()
                            icon: 'beer'
                            icon_color: 0.95, 0.95, 0.1, 1

            Screen2:
                name: 'profile_screen'

                BoxLayout:
                    orientation: 'vertical'

                    MDToolbar:
                        title: 'Profiel'
                        left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
                        elevation: 7
                    Widget:

            Screen3:
                name: 'session_screen'

                BoxLayout:
                    orientation: 'vertical'

                    MDToolbar:
                        title: 'Sessies'
                        left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
                        elevation: 10
                    Widget:


            Screen4:
                name: 'logout_screen'

                BoxLayout:
                    orientation: 'vertical'

                    MDToolbar:
                        title: 'Uitloggen'
                        left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
                        elevation: 10
                    Widget:

        MDNavigationDrawer:
            id:nav_drawer

            BoxLayout:
                orientation: 'vertical'
                spacing: '8dp'
                padding: '8dp'

                Image:
                    source: 'avatar.jpg'

                MDLabel:
                    text: '     Name'
                    front_style: 'Subtitle1'
                    size_hint_y: None
                    height: self.texture_size[1]

                MDLabel:
                    text: '     [email protected]'
                    front_style: 'Caption'
                    size_hint_y: None
                    height: self.texture_size[1]

                ScrollView:
                    MDList:
                        OneLineIconListItem:
                            text: 'Profiel'
                            on_press: screen_manager.current = 'profile_screen'
                            IconLeftWidget:
                                icon: 'face-profile'
                                on_press: screen_manager.current = 'profile_screen'


                        OneLineIconListItem:
                            text: 'Drink sessies'
                            on_press: screen_manager.current = 'session_screen'
                            IconLeftWidget:
                                icon: 'beer'
                                on_press: screen_manager.current = 'session_screen'

                        OneLineIconListItem:
                            text: 'Uitloggen'
                            on_press: screen_manager.current = 'logout_screen'
                            IconLeftWidget:
                                icon: 'logout'
                                on_press: screen_manager.current = 'logout_screen'

<Tab>:

    MDLabel:

        text:'tab1'
        user_font_size: "48sp"
        pos_hint: {"center_x": .5, "center_y": .5}

<Tab1>:

    MDLabel:

        text:'tab2'
        user_font_size: "48sp"
        pos_hint: {"center_x": .5, "center_y": .5}

Solution

  • Change the color of the text/icon of the tabs? That is working for me.

    Maybe try reinstall KivyMD.