2009-09-02 22 views

回答

7

在處理字段對齊時,BlackBerry UI字段管理器非常煩人。管理人員似乎忽略了所有風格的標誌(如HCENTER,VCENTER等),因此唯一能做到這一點的方法是覆蓋經理的sublayout方法,並自己動手。

這是一小段代碼,向你展示我的意思。這個特殊的代碼實際上是水平的居中,而不是垂直居中,但一旦你明白了,你可以實現你需要的任何樣式。

VerticalFieldManager mainmanager  = new VerticalFieldManager(Field.USE_ALL_WIDTH | Field.USE_ALL_HEIGHT) 
{ 
    protected void sublayout(int width, int height) { 

     super.sublayout(width, height); 

     width = getWidth(); 
     height = getHeight(); 

     for (int i = 0;i < this.getFieldCount() - 1; i++) 
     { 
      Field field = this.getField(i); 
      //this positions the item in the middle of the manager 
      int x = (int)((width - field.getWidth()) * 0.50); 
      setPositionChild(field, x, field.getTop()); 
     } 
    } 

請注意USE_ALL_WIDTHUSE_ALL_HEIGHT風格的標誌是重要的。如果你想做垂直居中,右下對齊等等,你需要自己寫定位代碼。例如,對於右下對齊,您可以將x位置設置爲經理的寬度減去字段的寬度,將y位置設置爲經理的高度減去字段的高度。

如果您希望能夠使用一個自定義管理器類來處理多個不同樣式(如右下角,左下角),您可以在sublayout中添加一些邏輯來檢查字段的樣式標誌,然後適當地定位字段。

希望這一切都有道理,並幫助你。 :)

+0

謝謝你的回答。 – Nitin 2013-10-31 11:51:02

1

Horizo​​ntalFieldManager只接受垂直對齊樣式,而VerticalFieldManager只接受水平對齊。而已。 煩人++