KivyMD
KivyMD copied to clipboard
MDFabBottomAppBarButton Widget Positioning Issue
When the screen expands sharply, the MDFabBottomAppBarButton widget goes out of frame. I have read that it is a FloatLayout, but when expanded a little (adding size), the widget does not change position relative to the position of MDBottomAppBar.
Code
from kivy.core.window import Window
from kivy.lang import Builder
from kivy.metrics import dp
from kivymd.uix.appbar import MDActionBottomAppBarButton
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.app import MDApp
KV = """
AdaptiveLayout:
MDScreen:
MDBoxLayout:
orientation: "vertical"
MDBottomAppBar:
id: bottom_appbar
MDFabBottomAppBarButton:
icon: "plus"
theme_bg_color: "Custom"
md_bg_color: "#373A22"
theme_icon_color: "Custom"
icon_color: "#ffffff"
"""
class AdaptiveLayout(MDBoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.bind(size=self.on_window_size, pos=self.on_window_size)
def on_window_size(self, instance, value):
if Window.width > dp(600):
instance.size_hint_x = None
instance.width = dp(600)
instance.pos_hint = {"center_x": 0.5}
else:
instance.size_hint_x = 1
class BottomAppBarButton(MDActionBottomAppBarButton):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.theme_bg_color = "Custom"
self.md_bg_color = "#373A22"
self.theme_icon_color = "Custom"
self.icon_color = "#ffffff"
class Example(MDApp):
selected_cards = False
def build(self):
return Builder.load_string(KV)
def on_start(self):
self.root.ids.bottom_appbar.action_items = [
BottomAppBarButton(icon="magnify"),
BottomAppBarButton(icon="trash-can-outline"),
BottomAppBarButton(icon="download-box-outline"),
]
Example().run()
Screenshots
Versions
- KivyMD: 2.0.1.dev0