2015-09-27 101 views
2

鉴于下面的布局,我预计BoxLayout是屏幕顶部的44px条,带有两个“日期时间”标签的红色背景。如屏幕截图所示,标签是他们预期的位置(所以盒子布局的位置是正确的),红色背景则不是这样:BoxLayout错误位置的背景颜色

enter image description here

我确定我错过了一些明显的东西,因为这是我第一次使用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的画布矩形的伎俩。

回答

2

就像你提到的,你是BoxLayout就是你想要的。它充满了两个标签,这也是他们的意思。为了让所有这些背景看起来都很红,您可以将标签背景变成红色。您已将BoxLayout设为红色,但标签背后无法看到,而且我不完全确定如何使这些透明(我敢肯定这是可能的)。我想,学习kivy最终都是关于实验的。

为了使标签具有红色背景(给予您相同的效果),您可能可以使用各自的画布,就像使用BoxLayout一样,但使用canvas.before除外。你不需要再用浮动或箱子布局来做。

从评论: 设置boxlayouts矩形位置pos: self.pos

+0

我改写的问题。 – grendel

+0

我编辑了答案。 – Totem

+0

FloatLayout具有覆盖整个屏幕的灰色背景(包括所有标签)。红色用于盒子布局画布 - 请注意,红色条框是盒子布局的高度,就好像Kivy重新定位并正确调整盒子布局的大小,但由于某些原因,盒子布局的画布停留在盒子布局的底部屏幕。此外,标签默认显示为透明 - 因为它们没有背景颜色/画布集,我们通过它们看到FloatLayout背景。 – grendel