2010-03-28 55 views
0

這是使用Backberry JDK(如果需要,5.0)。佈局期間黑莓RichTextField首選高度

我有一個包含RichTextField的自定義管理器。我希望字段的高度因RichTextField中的文本數量而異。

的sublayout代碼如下所示(RTF是RichTextField對象):

protected void sublayout(int width, int height) { 
    int h = rtf.getPreferredHeight(); 
    setExtent(Display.getWidth(), h); 
    layoutChild(rtf, Display.getWidth(), h); 
    setPositionChild(rtf, 0, 0); 

    setExtent(Display.getWidth(), h); 
} 

到rtf.getPreferredHeight調用總是返回相同的值,無論在多大的文本(因此多少行屏幕)。

有關如何在知道內容和寬度時獲取RichTextField高度的任何線索?

回答

2

當然,只要我發佈它,我想出了答案。調用layoutChild後查詢控件。

這個固定:

int h = rtf.getPreferredHeight(); 
    layoutChild(rtf, Display.getWidth(), h); 

    h = rtf.getHeight(); 

    setPositionChild(rtf, 0, 0); 

    setExtent(Display.getWidth(), h); 

我會刪除這個問題,但也許這將幫助別人。

0
RichTextField deviceId = new RichTextField() { 
    protected void setExtent(int width, int height) { 
     super.setExtent(Display.getWidth() - 30, 25); 
    } 
}; 

這解決了我的問題,爲RichTextField設置heightwidth當你不想寫單獨的類吧。