0

私は Blackberry アプリケーションを開発している Android 開発者です。

画面いっぱいのボタンを作成しました。テキストをボタン領域の中央に移動する際に問題が発生します。

以下のコードで使用:

ButtonField _contactButton = new ButtonField(Constants.contactButtonTitle,Field.FIELD_HCENTER|Field.USE_ALL_WIDTH |
                Field.ACTION_INVOKE | Field.FOCUSABLE | ButtonField.CONSUME_CLICK){
            protected void layout(int width, int height) {
                super.layout(width, height);
                HARD_CODED_HEIGHT = this.getHeight()/2 + 6;
                this.setExtent(contactButtonWidth, HARD_CODED_HEIGHT);
            }
            public int getPreferredWidth() {
                return contactButtonWidth;
            }
        }; 

ここに画像の説明を入力

以下のコードを使用します。

ButtonField _contactButton = new ButtonField(Constants.contactButtonTitle,Field.FIELD_VCENTER|Field.USE_ALL_WIDTH |
                Field.ACTION_INVOKE | Field.FOCUSABLE | ButtonField.CONSUME_CLICK){
            protected void layout(int width, int height) {
                super.layout(getPreferredWidth(), height);
            }

            public int getPreferredWidth() {
                return (Display.getWidth()-60);
            }
        };

まだ問題が発生しています..ボタンのテキストが右隅に配置されています。提案してください

4

2 に答える 2

0

USE_ALL_WIDTH は、フィールドへの指示です。驚くべきことに、ButtonField はそのような指示を無視します。さらに驚くべきことに、独自の getPreferredWidth を尊重します (非論理的に聞こえるかもしれませんが)。したがって、その USE_ALL_WIDTH をドロップして、次のように ButtonField を定義します。

ButtonField testBtn = new ButtonField("Button") {
    public int getPreferredWidth() {
        return Display.getWidth();
    }
};
于 2014-03-27T17:46:19.947 に答える