2009-09-02 5 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 위치는 관리자의 높이에서 필드의 높이를 뺀 값으로 설정할 수 있습니다.

하나의 맞춤 관리자 클래스를 사용하여 여러 가지 스타일 (오른쪽 하단, 왼쪽 하단 등)을 처리하려면 하위 레이아웃에 로직을 추가하여 필드의 스타일 플래그를 확인한 다음 필드를 적절하게 배치 할 수 있습니다.

이 모두가 의미 있고 도움이되기를 바랍니다. :)

+0

좋은 답변에 감사드립니다. – Nitin

1

HorizontalFieldManager는 수직 정렬 스타일 만 허용하고 VerticalFieldManager는 수평 정렬 만 허용합니다. 그게 전부 야. 성가신 ++

관련 문제