こんにちは私はブラックベリーで複数行のカスタムラベルを作成したい私は1つまたは2つのボタンを持つカスタムダイアログボックスを作成し、メッセージを表示するためにLabelFieldを追加しましたしかし問題はメッセージテキストが長すぎる場合ですカスタムダイアログの境界外では、ラベルに定義する幅のメッセージを次の行に配置するカスタマイズされたラベルが必要です。
質問する
608 次
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()/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 に答える