2012-03-29 2 views
0

layoutChild()을 사용하여 필드를 배치 할 수있는 사용자 정의 HorizontalFieldManager을 만들었습니다. LabelField을 추가하면 정상적으로 작동합니다. 문제는 라벨을 VerticalFieldManager에 추가하고 해당 VFM을 내 맞춤 HFM에 추가 할 때입니다. 문제는 VFM의 선호하는 높이를 차지하지 않는다는 것입니다. 왜 그런가?HorizontalFieldManager의 필드 정렬

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

답변

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 (새 LabelField ("Hello Alignment"));

0

필드를 두 개 이상 추가하는 경우 모든 필드에 레이아웃을 지정하십시오.

필드를 하나만 사용하면 레이아웃을 지정할 필요가 없으므로 관리자에게 추가 할 수 있습니다.