0

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

4

1 回答 1

3

您应该将您LabelField的添加到VerticalFieldManager. 这个答案是基于我在这里的回答。您可以通过修改管理器方法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);    
    }
}

此代码段产生 在此处输入图像描述

在管理器的方法中修改maxWidthDisplay.getWidth()/2(或maxWidth/2)会产生sublayout()

在此处输入图像描述

更新(正如 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);
            }
        });    
    }
}
于 2012-06-24T06:44:52.817 回答