I wanted to create an interface in Python that had a row of icons at the top. Depending on the screen being displayed, I wanted one of those icons to be highlighted or a different color than the others.
This proved to be more challenging than I expected. You can set the color of all of the icons, but setting the color of a single one is a different story.
The solution that I came up with was to create a function that sets the target icon color when the program loads, rather than trying to do it as part of a KivyMD attribute of the TopAppBar widget.
def set_icon_color(self, dt): screen_1_icon = self.screen_1.ids.menu_app_bar.ids.right_actions.children #Tell the method where to find the homescreen icon screen_1_icon.theme_icon_color = "Custom" screen_1_icon.text_color = "00ADB5" #define what the icon should look like screen_2_icon = self.screen_2.ids.menu_app_bar.ids.right_actions.children screen_2_icon.theme_icon_color = "Custom" screen_2_icon.text_color = "00ADB5" screen_2_icon = self.screen_3.ids.menu_app_bar.ids.right_actions.children screen_3_icon.theme_icon_color = "Custom" screen_3_icon.text_color = "00ADB5"
We call this function on program load. This sets the color of the target individual icon on each screen, without affecting the others. When I switch to any given screen, the appropriate icon is already highlighted with a distinct color.
The other thing I had