2009-08-20 57 views
0

我正在黑莓中寫一個應用程序,在那裏我想在FullScreen的paint方法的屏幕頂部做一些自定義繪畫,同時我想要一個RichtextField位於屏幕的下部。我嘗試在Field類中使用setPosition方法,但無濟於事。那麼如何設置添加到FullScreen類的RichtextField的位置?Blackberry在FullScreen中設置RichtextField的位置

回答

1

您可以使用SpacerField用於這一目的:

class SpacerField extends Field { 

    int localWidth, localHeight; 

    SpacerField(int width, int height) { 
    super(Field.NON_FOCUSABLE); 
    localWidth = width; 
    localHeight = height; 
    } 

    protected void layout(int width, int height) { 
    // TODO Auto-generated method stub 
    setExtent(localWidth, localHeight); 
    } 


    protected void paint(Graphics graphics) { 

    } 


    public int getPreferredWidth() { 
    return localWidth; 
    } 

    public int getPreferredHeight() { 
    return localHeight; 
    } 
} 

而且你RichTextField前添加到您的屏幕。構建SpacerField時一定要給出合適的widthDisplay.getWidth()?)和height

注意:幾個月前我在this forum discussion處發現了代碼,當時我需要做類似的事情。

1

定位對象的最佳方法是擴展一個管理器並使用它來以所需的方式定位和調整對象的大小。查看net.rim.device.api.ui.Manager和net.rim.device.api.ui.Field的文檔以獲取有關管理員如何控制其子級的信息。

+0

FullScreen擴展Manager,但是當我嘗試使用setPositionChild()方法時,它拋出一個IllegalArgumentException異常,說該字段不是孩子。我已將該字段添加到FullScreen。此外,我還搜查了是否需要將其設置爲兒童,但沒有辦法做到這一點。 – Ram 2009-08-20 12:47:58