2011-03-28 96 views
1

我试图限制一个ListField的高度,这样,当你在物品中移动时,而不是沿着屏幕向下移动,你只能在箱子内向下移动。所以,例如,屏幕上的标题不会消失。如何限制ListField的整体高度?

我目前的解决方案不起作用。高度不变。它仍然停留在对象列表的大小上。我正在使用的代码是:

_listField = new ListField() 
    { 
     protected void layout(int w, int h) 
     { 
      super.layout(w, 100); 
     } 
    }; 
+0

您需要在看到问题的位置包含BBOS版本和设备型号。 – 2011-03-28 20:51:13

回答

1

在把列表字段MainScreen里面看看。然后,您可以将标题设置为MainScreen的标题。

+0

它在MainScreen中。标题虽然是一个图像,我不想使用标题。 – user654081 2011-03-28 18:08:47

+0

“我不想使用标题”并不是一个非常有说服力的理由来拒绝可行的解决方案。 – 2011-03-28 19:37:34

+0

这对我的问题不是一个可行的解决方案?我很欣赏答案,但这不是解决我的问题的方法。我需要一个ListField上的固定高度,而不是重新设计界面。 – user654081 2011-03-28 20:22:51

2

你可以这样做。在您的MainScreen构造器中添加

super(NO_VERTICAL_SCROLL); 

因此您的主屏幕不会滚动。

如果要限制创建新的管理器,它已使垂直滚动所以只有经理将滚动像

VerticalFieldManager listManager = new VerticalFieldManager(VERTICAL_SCROLL | VERTICAL_SCROLLBAR); 

现在添加您的组件,该经理说,你的ListField一样

listManager.add(your listfield object); 

listField的高度,然后您可以将限制设置为listManger并将该列表字段添加到管理器。所以名单将布置在这样的经理给定的高度

VerticalFieldManager listManager = new VerticalFieldManager(VERTICAL_SCROLL | VERTICAL_SCROLLBAR); 
{ 
    protected void sublayout(int maxWidth, int maxHeight) 
    { 
     int width = Display.getWidth(); 
     int height = 100; 
     super.sublayout(width, height); 
     setExtent(width, height); 
    } 
}; 

希望这会帮助你。