在Horizo​​ntalFieldManager中对齐字段

时间:2012-03-29 18:10:38

标签: user-interface blackberry

我创建了一个自定义HorizontalFieldManager,我可以使用setPositionChild()layoutChild()来定位字段。如果我向其添加LabelField,它可以正常工作。问题是当我向VerticalFieldManager添加标签并将该VFM添加到我的自定义HFM时。问题是它没有采用VFM的首选高度。知道为什么吗?

 setPositionChild(
      getField(0), 
      0, 
      0);
 layoutChild(
      getField(0), 
      getField(0).getPreferredWidth(), 
      getField(0).getPreferredHeight()); //.....
      setExtent(width, height);

2 个答案:

答案 0 :(得分:0)

这会对你有所帮助

 Manager customManager = new Manager(0)
 {
 protected void sublayout(int width, int height) {
     setPositionChild(
         getField(0), 
         0, 
         0);
     layoutChild(
         getField(0), 
         getField(0).getPreferredWidth(), 
         getField(0).getPreferredHeight());

     setPositionChild(
         getField(1), 
         Graphics.getScreenWidth()/2 - getField(1).getPreferredWidth()/2, 
         0);
     layoutChild(
         getField(1), 
         getField(1).getPreferredWidth(), 
         getField(1).getPreferredHeight());    

     setPositionChild(
         getField(2), 
         Graphics.getScreenWidth() - getField(2).getPreferredWidth(), 
         0);
     layoutChild(
         getField(2), 
         getField(2).getPreferredWidth(), 
         getField(2).getPreferredHeight());    

     setExtent(width, height);
 }      

};  customManager.add(new LabelField(“Hello Alignment”));

答案 1 :(得分:0)

如果要添加多个字段,请为所有字段指定布局。

如果只使用一个字段,则无需提供布局,请将其添加到管理器。