黑莓中的多行自定义标签

时间:2012-06-24 05:39:26

标签: blackberry custom-controls label

您好我想在Blackberry中创建多行自定义标签 我创建了一个自定义对话框,它有一个或两个按钮,并显示我添加了LabelField的消息 但是,问题是消息文本是否比自定义对话框边界外的消息文本太长 我需要一些自定义标签,将消息放在下一行中,我可以为标签定义宽度。

1 个答案:

答案 0 :(得分:3)

您应该将LabelField添加到VerticalFieldManager。这个答案基于我的回答here。您可以通过修改经理maxWidth方法中的sublayout()变量来更改标签字段的宽度。

public final class CustomScreen extends MainScreen {
    public CustomScreen() {  
        String longString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel lorem eget tortor hendrerit adipiscing. Curabitur mollis pellentesque est ac.";

        VerticalFieldManager vfm = new VerticalFieldManager(Manager.USE_ALL_WIDTH | Manager.NO_HORIZONTAL_SCROLL) {
            protected void sublayout(int maxWidth, int maxHeight) {
                super.sublayout(maxWidth, maxHeight);
            };
        };

        vfm.add(new LabelField(longString));
        add(vfm);    
    }
}

此代码段生成 enter image description here

在经理的maxWidth方法中修改Display.getWidth()/2maxWidth/2(或sublayout()}会产生

enter image description here

UPDATE(正如Yatin建议的那样):可以在不使用VerticalFieldManager的情况下实现相同的功能,但如果文本不垂直,则垂直滚动将不可用。

public final class CustomScreen extends MainScreen {
    public CustomScreen() {  
        String longString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel lorem eget tortor hendrerit adipiscing. Curabitur mollis pellentesque est ac.";

        add(new LabelField(longString) {
            protected void layout(int width, int height) {
                super.layout(width/2, height);
            }
        });    
    }
}