2010-12-22 37 views
0

hi 在黑莓中,我創建了一個水平字段managar,並在其中添加了一些小尺寸的按鈕以在屏幕底部顯示工具欄。但是我的問題是太多空間之間的2個按鈕。我必須減少這兩個按鈕之間的空間,這樣我可以設置至少6個按鈕在屏幕的底部。我正在使用BFmsg.setMargin(305,0,0,40) 語句。任何人都可以請幫助我。BlackBerry:縮小Horizo​​ntalFieldManager中2個按鈕之間的空間

以下是我的代碼:

BFcontacts = new ButtonField("Cnt") 
    { 
     protected void paint(Graphics graphics) 
     { 
     //Bitmap contactsbitmap = Bitmap.getBitmapResource("contacts.jpg"); 
      //graphics.drawBitmap(0, 0, contactsbitmap.getWidth(), contactsbitmap.getHeight(), contactsbitmap, 0, 0); 
      graphics.setColor(Color.WHITE); 
      graphics.drawText("Cnt",0,0); 
     } 
    }; 


    BFcontacts.setMargin(305,0,0,10);//vertical pos,0,0,horizontal pos 
    HFM.add(BFcontacts); 

    BFmsg = new ButtonField("Msgs") 
    { 
     protected void paint(Graphics graphics) 
     { 
     //Bitmap msgsbitmap = Bitmap.getBitmapResource("messages.jpg"); 
      //graphics.drawBitmap(0, 0, msgsbitmap.getWidth(), msgsbitmap.getHeight(), msgsbitmap, 0, 0); 
      graphics.setColor(Color.WHITE); 
      graphics.drawText("Msgs",0,0); 
     } 
    }; 


    BFmsg.setMargin(305,0,0,40);//vertical pos,0,0,horizontal pos : original 
    HFM.add(BFmsg); 

    add(HFM) 

在此先感謝

回答

1

具有u嘗試使用自定義的經理ü可以將內容按烏爾選擇這樣

創建該類的對象,並添加項目

class BottomManager extends Manager 
    { 
     BottomManager() 
     { 
      super(Manager.NO_VERTICAL_SCROLL); 
     } 
     protected void sublayout(int width, int height) 
     { 
      Field field = getField(0); 
      layoutChild(field,Display.getWidth(), Display.getHeight()); 
      setPositionChild(field,0,0); 

      field = getField(1); 
      layoutChild(field,Display.getWidth(), Display.getHeight()); 
      setPositionChild(field,10+getField(0).getWidth(),0); 

      field = getField(2); 
      layoutChild(field,Display.getWidth(), Display.getHeight()); 
      setPositionChild(field,10+getField(1).getWidth(),0); 

      field = getField(3); 
      layoutChild(field,Display.getWidth(), Display.getHeight()); 
      setPositionChild(field,getField(2).getWidth()+10,0); 

      setExtent(Display.getWidth(), 40); 
     } 
    } 
0

我不知道如果我完全明白你的問題。但是如果您將所有按鈕放在HorizontalFieldManager中,它們都將嘗試放在一行中,現在您可以爲您的HorizontalFieldManager設置保證金以顯示在底部或某個x位置。然後添加這Manager到您HFM

2

setMargin(305,0,0,40)// = TOP,RIGHT,BOTTOM,LEFT

裕度是相對於指定的值的最近的對象。

因此,簡單地將左值從40減小到小一點,應該可以讓您在水平字段中容納更多的對象。

可能你會想要(Display.getWidth() - (button.getWidth()* numButtons))/ numButtons + 1來計算左邊距。

相關問題