Размещение ButtonField - PullRequest
       3

Размещение ButtonField

0 голосов
/ 18 июня 2010

Я хочу разместить кнопки, как показано на рисунке:

альтернативный текст http://www.freeimagehosting.net/uploads/413b8990b3.png

для этого я использую следующий код, но он не работает для меня, может кто-нибудь, пожалуйста, помогите мне

 topbarManager = new HorizontalFieldManager(); 

    topbarLeftManager = new HorizontalFieldManager(Field.FIELD_LEFT);
    topbarRightManager = new HorizontalFieldManager(Field.FIELD_RIGHT);
    topbarCenterManager = new HorizontalFieldManager(Field.FIELD_HCENTER);
    topbarLeftManager.add(new ButtonField("first"));
    topbarRightManager.add(new ButtonField("second"));
    topbarCenterManager.add(new ButtonField("third"));
    topbarManager.add(topbarLeftManager);
    topbarManager.add(topbarCenterManager);
    topbarManager.add(topbarRightManager);

Я не получаю результат, как мне требуется.

Может кто-нибудь, пожалуйста, помогите мне.

Большое спасибо

1 Ответ

2 голосов
/ 18 июня 2010

в соответствии с документами.

Менеджер компоновки HorizontalFieldManager размещает компоненты пользовательского интерфейса в одну горизонтальную строку, начиная с левой стороны экрана и заканчивая с правой стороны экрана. Поскольку этот менеджер компоновки размещает компоненты пользовательского интерфейса по горизонтали, вы не можете применять биты горизонтального стиля к компонентам пользовательского интерфейса (например, Field.FIELD_LEFT, Field.FIELD_HCENTER или Field.FIELD_RIGHT). Вы можете применять биты вертикального стиля (например, Field.FIELD_TOP, Field.FIELD_BOTTOM или Field.FIELD_VCENTER).

поэтому, если вы хотите увидеть эффект Field.FIELD_LEFT, используйте

VerticalFieldManager hfm = new VerticalFieldManager(Manager.USE_ALL_WIDTH);

вместо HorizontalFieldManager вы увидите эффект лестничной клетки.

Для макета пользовательского интерфейса лучше всего использовать пользовательский макет

HorizontalFieldManager hfm = new HorizontalFieldManager(Manager.USE_ALL_WIDTH){
            protected void sublayout(int maxWidth, int maxHeight) {
                Field f;
                int w = Display.getWidth();
                int x=0;
                for (int i = 0; i < getFieldCount(); i++) {
                    f = getField(i);
                    layoutChild(f, f.getPreferredWidth(), f.getPreferredHeight());
                    setPositionChild(f, x, 0);
                    x+=(w-f.getWidth())/2;
                }


                setExtent(maxWidth, maxHeight);

            }
        };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...