2009-11-19 62 views

回答

10

基本設置任何場位置amoung經理,你768,16:

  1. 覆蓋sublayout

去除死ImageShack的鏈接

extanded經理代碼:

class CustomVerticalManager extends VerticalFieldManager { 
LabelField mText1 = new LabelField("top"); 
LabelField mText2 = new LabelField("bottom"); 

public CustomVerticalManager() { 
    add(mText1); 
    add(mText2); 
} 

public int getPreferredHeight() { 
    return Display.getHeight(); 
} 

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

protected void sublayout(int width, int height) { 
    width = getPreferredWidth(); 
    height = getPreferredHeight(); 

    int fieldWidth = mText1.getPreferredWidth(); 
    int fieldHeight = mText1.getPreferredHeight(); 
    layoutChild(mText1, fieldWidth, fieldHeight); 
    int xPos = (width - fieldWidth) >> 1; 
    int yPos = 0; 
    setPositionChild(mText1, xPos, yPos); 

    fieldWidth = mText2.getPreferredWidth(); 
    fieldHeight = mText2.getPreferredHeight(); 
    layoutChild(mText2, fieldWidth, fieldHeight); 
    xPos = (width - fieldWidth) >> 1; 
    yPos = height - fieldHeight; 
    setPositionChild(mText2, xPos, yPos); 
    setExtent(width, height); 
} 
} 

使用的樣本:

class Scr extends MainScreen { 
CustomVerticalManager mManager = new CustomVerticalManager(); 

public Scr() { 
    add(mManager); 
} 
} 

又見
Wireless - How to : Create a custom layout manager for a screen
Blackberry - fields layout animation

+0

很好的回答。 RIM實際上在5.0 API中有一個名爲AbsoluteFieldManager的新類,但由於某種原因,它從最新的beta版中刪除了它。 – 2009-11-19 22:16:30