0

私は以下のような画面を実装しようとしています:

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

そのために、私は次のコードを使用しています。まったく機能していません。

HorizontalFieldManager outerManager = new HorizontalFieldManager(FIELD_BOTTOM|USE_ALL_HEIGHT);
        outerManager.setBackground(BackgroundFactory.createBitmapBackground(Bitmap.getBitmapResource("img/bghome.png")));

final FCLabelField selectedLabel = new FCLabelField("Hello World", LabelField.USE_ALL_WIDTH | DrawStyle.HCENTER);

selectedLabel.setFontColor(Color.BLACK);
selectedLabel.setBackground(BackgroundFactory.createSolidBackground(0x00cccccc));
outerManager.add(selectedLabel);

HorizontalFieldManager innerManager = new HorizontalFieldManager();

innerManager.setPadding(0, 10, 0, 10);


innerManager.add(new ButtonField( "Button 1", ButtonField.CONSUME_CLICK | ButtonField.FIELD_RIGHT ));
innerManager.add(new ButtonField( "Button 2", ButtonField.CONSUME_CLICK | ButtonField.FIELD_RIGHT ));
innerManager.add(new ButtonField( "Button 3", ButtonField.CONSUME_CLICK | ButtonField.FIELD_RIGHT ));
innerManager.add(tab4);
innerManager.add(tab5);

outerManager.add(innerManager);

innerManager.setBackground(BackgroundFactory.createSolidBackground(0x00cccccc));

add(outerManager);

私のコードの問題は何ですか?上記のような画面を設定するにはどうすればよいですか?

4

2 に答える 2

2

1つにすべてのボタンを追加して、HorizontalFieldManagersetStatus(ボタンを追加したhfmIn)を使用してみてください。これにより、画面の下部にボタンが設定されます。そして、setStatusのHello world前にlabelFieldを追加します。それでおしまい。:)

于 2012-03-22T11:19:14.467 に答える
2

あなたが求めたことを達成するためのいくつかの方法があります。1つの方法は、 BBdevsetStatus()が提案した方法を使用することです(これは、タイプの画面に対してのみ機能し、タイプの画面に対しては機能しません)。もう1つの方法は、下部への位置合わせを手動で行うことです。MainScreenFullScreen

覚えておくべき重要なアライメントルール:

  • ホリゾンタルフィールドマネージャーは、フィールドを垂直方向にのみ整列できます。水平マネージャにフィールドを追加する場合、FIELD_TOP、FIELD_VCENTER、FIELD_BOTTOMの配置スタイルのみが有効です。

  • VerticalFieldManagerは、フィールドを水平方向にのみ整列できます。垂直フィールドマネージャにフィールドを追加する場合、FIELD_LEFT、FIELD_HCENTER、FIELD_RIGHTの配置スタイルのみが有効になります。

これがあなたが求めたことを実行するコードスニペットです。

public class UISandbox extends MainScreen {
    public UISandbox() {
        super(NO_VERTICAL_SCROLL | NO_HORIZONTAL_SCROLL | USE_ALL_HEIGHT | USE_ALL_WIDTH);

        HorizontalFieldManager outerManager = new HorizontalFieldManager(USE_ALL_HEIGHT);
        outerManager.setBackground(BackgroundFactory.createBitmapBackground(Bitmap.getBitmapResource("img/bghome.png")));

        VerticalFieldManager innerMngr = new VerticalFieldManager(USE_ALL_WIDTH | FIELD_BOTTOM); 
        final LabelField selectedLabel = new LabelField("Hello World", FIELD_HCENTER) {
            protected void paint(Graphics g) {
                g.setColor(Color.BLACK);
                super.paint(g);
            }
        };
        selectedLabel.setBackground(BackgroundFactory.createSolidBackground(0x00cccccc));
        innerMngr.add(selectedLabel);

        GridFieldManager innerInnerMngr = new GridFieldManager(1, 3, USE_ALL_WIDTH);
        innerInnerMngr.setPadding(10, 0, 10, 0);
        innerInnerMngr.setColumnProperty(0, GridFieldManager.AUTO_SIZE, 0);
        innerInnerMngr.setColumnProperty(1, GridFieldManager.AUTO_SIZE, 0);
        innerInnerMngr.setColumnProperty(2, GridFieldManager.AUTO_SIZE, 0);
        innerInnerMngr.add(new ButtonField("Button 1", ButtonField.CONSUME_CLICK | FIELD_HCENTER));
        innerInnerMngr.add(new ButtonField("Button 2", ButtonField.CONSUME_CLICK | FIELD_HCENTER));
        innerInnerMngr.add(new ButtonField("Button 3", ButtonField.CONSUME_CLICK | FIELD_HCENTER));

        innerMngr.add(innerInnerMngr);
        outerManager.add(innerMngr);
        add(outerManager);
    }
}
于 2012-03-22T11:55:13.647 に答える