0

こんにちは私はブラックベリーで複数行のカスタムラベルを作成したい私は1つまたは2つのボタンを持つカスタムダイアログボックスを作成し、メッセージを表示するために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);    
    }
}

このコードスニペットは ここに画像の説明を入力してください

マネージャのメソッドで(または)を変更maxWidthすると、Display.getWidth()/2maxWidth/2sublayout()

ここに画像の説明を入力してください

更新(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 に答える