Учитывая макет ниже, я ожидал, что BoxLayout станет баром в 44 пикселя в верхней части экрана с красным фоном с двумя ярлыками «Дата времени». Как показано на скриншоте, этикетки находятся там, где они ожидаются (так что расположение макета коробки правильное), а не для красного фона:Цвет фона BoxLayout в неправильном положении
Уверен, что мне не хватает чего-то очевидного, так как это первый раз, когда я использую Kivy и KV. Я попытался использовать холст. {До, после} безрезультатно. Что мне не хватает? Заранее благодарим за любые ответы!
#:kivy 1.0
#
FloatLayout:
canvas:
Color:
# #263238
rgb: 0x26/255.0, 0x32/255.0, 0x38/255.0
Rectangle:
size: self.size
BoxLayout:
canvas:
Color:
rgb: 1, 0, 0
Rectangle:
size: self.size
orientation: 'horizontal'
padding: 10
spacing: 10
size_hint: 1, None
pos_hint: {'top': 1}
height: 44
Label:
height: 24
text_size: self.width, None
text: 'Date time'
Label:
height: 24
text_size: self.width, None
text: 'Date time 2'
Label:
text: 'testing'
Редактировать: согласно ответу Тотем, добавив pos: self.pos
в BoxLayout холст прямоугольника делает трюк.
Я перефразировал вопрос. – grendel
Я отредактировал ответ. – Totem
FloatLayout имеет сероватый фон, который охватывает весь экран (включая все метки). Красный используется для холста макета коробки - обратите внимание, что красная полоса является высотой макета окна, это похоже на то, что Kivy повторно устанавливает и правильно изменяет размер окна коробки, но по какой-то причине холст макета коробки находится внизу экран. Кроме того, по умолчанию эти метки кажутся прозрачными - поскольку у них нет цвета фона/холста, и мы видим фон FloatLayout через них. – grendel