2010-06-17 3 views
0

я хочу, чтобы поместить кнопки, как показано на рисунке:Размещение ButtonField

alt text 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); 

Я не получаю результат по мере необходимости.

может любой пожалуйста, помогите мне.

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

+0

Какой результат вы получаете с указанным кодом? – paullb

+0

все выровнены один за другим горизонтально – rupesh

ответ

2

according to docs.

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, вы увидите случай лестничные как эффект.

Для макета UI лучшая вещь использовать пользовательский макет

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); 

      } 
     };