2011-04-12 23 views
0

我有一個VerticalFieldManager,它包含由SeparatorField分隔的兩個普通字段。第二個字段比第一個字段大得多,所以VFM向上/向下和向右/向左滾動。如何限制SeparatorField的寬度爲固定值?

當我不添加SeparatorField時,VFM上的滾動按預期工作 - 我永遠不能滾動(垂直或水平)超過第二個域的內容。但是,當我添加SeparatorField(使用默認構造函數)時,它似乎使分隔符無限寬 - 我可以向右無限滾動,遠遠超過第二個字段的內容,並且我從未出現過到達分離器的末端。

如何根據第二個字段的內容告訴SeparatorField只有必要的寬度?我試過覆蓋SeparatorField上的getPreferredWidth(),但這似乎沒有效果。

回答

1

我自己沒有這樣做,但我懷疑重寫佈局(int,int)應該這樣做。
類似:

public static int MAX_WIDTH=20; 
protected void layout(int maxWidth, int maxHeight) { 
    super.layout(maxWidth, maxHeight); 
    this.setExtent(Math.min(this.getWidth(), MAX_WIDTH), this.getHeight()); 
} 
+0

這似乎沒有影響 - 分隔符仍然無限寬。 – MusiGenesis 2011-04-13 12:25:36

0

好吧,我解決這個問題是完全拋出了SeparatorField,並繪製它需要在paint()方法去行。