无法在list_box中间对齐

时间:2012-11-01 20:58:21

标签: ruby alignment shoes

我无法在红宝石鞋中间对齐list_box。我测试了一些东西,包括:right => “50”或:left => “50”,但它仍然不起作用。

Shoes.app do 
  stack :width => "100%", :height => "45%" do
    a = list_box :items => ["lol","b"], :width => 50, :align => "center"
  end
end

1 个答案:

答案 0 :(得分:2)

我没有找到直接的方法,但你可以使用这个黑客

module Shoes::Types
def centr
 left=(self.parent.width-self.style[:width])/2
 self.move(left,self.top)
end

def middle
 top=(self.parent.height-self.style[:height])/2
 self.move(self.left,top) 
end
end

Shoes.app do 
 @c=stack :width=>50, :height=>30 do
  a=list_box :items => ["lol","b"], :width => 50, :height=>30
 end
 @c.centr.middle
end

实际上,首先要扩展插槽的功能,以便将它们放置在包含插槽的中心或中间。然后将列表框包装在一个狭小的插槽中,然后放在中间位置。