开发者

Blackberry RichTextField preferred height during layout

This is using the Backberry JDK (5.0 if needed).

I have a custom Manager that contains a RichTextField. I want the height of the field to vary by the amount of text in the RichTextField.

The sublayout code looks like this (rtf is a RichTextField object):

    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);
}

The call to rtf.getPreferredHeight always returns the same value, no matter how much text (a开发者_如何学编程nd therefore how many lines on the screen).

Any clues on how to get the height of a RichTextField when the content and width are known?


Of course, as soon as I posted it I figured out the answer. Query the control after calling layoutChild.

This fixed it:

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

    h = rtf.getHeight();

    setPositionChild(rtf, 0, 0);

    setExtent(Display.getWidth(), h);

I would have deleted the question but maybe this will help someone else.


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

This solved my problem for setting height and width for RichTextField when you don't want to write separate class for it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜