Open RobertFlatt opened 8 months ago
@HeaTTheatR
The problem is the size_hint_y in the box layout at the root of the tab content.
This is a workaround for the example above, but its not a fix (see end of this post)
bl = MDBoxLayout(orientation='vertical',
#size_hint_y=None)
)
To be clear it is unrelated to Tab, so a simpler example is:
from kivymd.app import MDApp
from kivymd.uix.label import MDLabel
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.uix.button import MDButton, MDButtonText
class Example2(MDApp):
def build(self):
self.theme_cls.primary_palette = "Olive"
bl = MDBoxLayout(orientation='vertical',
pos_hint = {'center_y':0.5},
size_hint_y=None) ####### this is the cause
#)
for i in range(3):
bl.add_widget(MDButton(MDButtonText(text='Button '+str(i)),
pos_hint={"center_x": .5, "center_y": .5}))
bl2 = MDBoxLayout(orientation='horizontal',
pos_hint = {'center_x':0.5},
adaptive_width = True)
bl2.add_widget(MDButton(MDButtonText(text='Button in BoxLayout'),
pos_hint={"center_x": .5, "center_y": .5}))
bl.add_widget(bl2)
return bl
Example2().run()
This is I think still a real issue, because the size_hint_y=None
is required in the original example for ScrollView so that if for i in range(3):
is for i in range(10):
the content will scroll correctly. So in the original with more buttons one can have scrolling or adaptive_width but not both.
FYI typo in https://kivymd.readthedocs.io/en/latest/components/boxlayout/
I think last line should be width: self.minimum_width
FYI I re-designed my app to avoid the 'adaptive_width with scroll' issue (and its better!), so my priority on this one is now zero.
Description of the Bug
An MDBoxLayout in tabs content is mis-layedout when adaptive_width = True. In this case the intent is for "Button in BoxLayout" to be located centrally in the space below "Button 2"
adaptive_size correctly lays out the BoxLayout if the design intent is for the layout to behave as if there is no BoxLayout.
Code and Logs
Screenshots
Versions