ActionPrevious получение неожиданного фона

Я сделал правило в своем kv для класса Button чтобы иметь определенный фон (предоставленный на изображении). Когда я создал ActionBar который содержит виджеты ActionPrevious и ActionButton , они оба, похоже, получили тот же фон.
И я бы понял, что экземпляр ActionButton получил этот фон, поскольку он наследует классы Button и ActionItem , но почему ActionPrevious получил тот же фон? Он наследует от BoxLayout и ActionItem , ни один из которых не имеет ничего общего с классом Button . В чем причина этого?

Кроме того, побочный вопрос
ActionPrevious имеет свойство with_previous которое, когда установлено значение True , добавляет кликабельную стрелку. Однако название виджета остается незаметным. Но документы говорят, что это свойство сделает весь виджет интерактивным. Хотя это не очень важно, я бы предпочел, чтобы весь ActionPrevious виджета ActionPrevious менялся при нажатии. Можно ли это достичь?
Поэтому я имею в виду, что когда вы нажимаете стрелку «Назад», только пространство вокруг нее и значок приложения становятся синими, но текст не похож, как на часть другого виджета.

Вот код для визуализации вопроса:

 from kivy.base import runTouchApp from kivy.lang import Builder from kivy.uix.actionbar import ActionBar Builder.load_string(''' <Button>: background_normal: 'some_file.png' <MenuBar>: ActionView: ActionPrevious: title: "Log out" with_previous: True ActionButton: text: "Settings" ''') class MenuBar(ActionBar): pass runTouchApp(MenuBar()) 

Хорошо, так что правда была в файле style.kv . В принципе, виджет ActionPrevious имеет следующую структуру:

 <ActionPrevious>: GridLayout: ActionPreviousButton: GridLayout: ActionPreviousImage: id: prev_icon_image # the "back" arrow ActionPreviousImage: id: app_icon_image # the app icon Widget: # perhaps something to split the title from the GridLayout Label: id: title # the title 

И ActionPreviousButton наследует от Button , поэтому именно поэтому роль ActionPrevious стрелки получила этот фон.

Здесь также лежит ответ на вопрос стороны. Поскольку кликабельная часть является ActionPreviousButton , а заголовок хранится в Label , который не является дочерним элементом, текст не имеет значения. Поэтому, чтобы исправить это, нужно создать собственный класс и поместить Label в качестве дочернего элемента ActionPreviousButton .