2011-03-28 67 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); 
    } 
}; 

希望這會幫助你。