Выровнять поле в HorizontalFieldManager - PullRequest
0 голосов
/ 29 марта 2012

Я создал пользовательский 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 голосов
/ 30 марта 2012

Если вы добавляете более одного поля, задайте макет для всех полей.

И если вы используете только одно поле, нет необходимости указывать макеты, пусть он добавляется в менеджер.

0 голосов
/ 30 марта 2012

Это вам поможет

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...