2011-12-19 1 views
7

내 응용에는 editfields가 2 가지 있습니다. 그 중 하나는 한 줄 editfield처럼 작동하고 다른 줄은 여러 줄 editfield (editarea)처럼 작동합니다. 이 화면에는 하나의 헤더, 하나의 editfield 및 하나의 편집 영역이 있습니다. editfield에 텍스트를 입력하면 텍스트와 커서가 잘립니다. 그러나, 꼬리 문자 (y, g, q, p)가 포함 된 editarea에 텍스트를 입력하면 editarea 높이가 변하고 editfield은 정상적으로 작동합니다. 꼬리 문자를 입력하지 않으면 stuation이 변하지 않습니다. 여기 editfield 이상한 높이

내 editarea 클래스입니다 :

public class EditAreaField extends HorizontalFieldManager{ 
    private net.rim.device.api.ui.component.EditField editArea; 
    public EditAreaField(){ 
     // some code; 
     editArea.setPadding(25, 10, 0, 10);  
    } 
    public int getPreferredHeight() { 
     int height = Math.max(editArea.getHeight(), textFont.getHeight()); 
     return height + editArea.getPaddingTop(); 
    } 
} 

LABEL1 -> editfield

라벨 2 -> editarea

enter image description here enter image description here

+0

간단히 설명해 주실 수 있습니까? –

+0

글쎄, 나는 실제로 질문에서 설명했다. 왼쪽 이미지에서 볼 수 있듯이 클리핑 문제가 있습니다. 커서의 절반이 첫 번째 문자 위에 있고, 절반은 마지막 문자에 있습니다. 꼬리 문자를 입력하면 자르기 오류가 더 이상 발생하지 않습니다. –

+0

당신은 여기에 올 수 있습니다 우리는 이것에 대해 더 자세히 논의 할 수 있습니다 http://chat.stackoverflow.com/rooms/4014/knowledge-sharing-center-for-blackberry-and-java –

답변

1

변경할 크기를 만들고 있기 때문입니다 사용하여

int height = Math.max(editArea.getHeight(), textFont.getHeight()); 

대신 고정 높이를 지정하십시오. 당신은 또한 관리자

 protected void sublayout(int maxWidth, int maxHeight) 
      { 
       layoutChild(_editField, _editField.getPreferredWidth(), _editField.getPreferredHeight()); 
       setPositionChild(_editField, xpos,ypos); 
       setExtent(preferredHeight,preferredWidth); 
      } 

의 sublayout 방법 내부 setExtent을 사용할 수 있습니다 예를

height= Graphics.getScreenHeight()/5; 

또는 나는 그것이 작동 것이라 생각합니다. 당신은 drawFocus 및/또는 onFocus 및/또는 onUnfocus을 무시했고, 언젠가 제대로 그려지지 않는다 - 내가 커서 그림에 대해

+0

editfield는 고정 크기이지만 editarea는 고정해서는 안됩니다 사용자가 얼마나 많은 문자를 입력해야하는지 알지 못하기 때문입니다. 또한 당신이 말한대로 그것을 재정의하여 sublayout 메서드 안에 범위를 설정합니다. 이상한 편집 영역의 높이가 38 일 때 초기화됩니다. 사용자가 꼬리 문자를 넣으면 39로 변경됩니다. 제가 생각하는 문제가 있습니다. –

1

을 알려 주시기 바랍니다.

+0

나는 onFocus 및 onUnfocus를 오버로드합니다. 동일한 화면을 이미지에 추가 한 사용자 정의 구성 요소는 다르게 동작합니다. 왼쪽 이미지에 문제가있는 경우 문제는 오른쪽 이미지에 남아 있어야합니다. 문제의 근원은 내가 생각하는 편집 영역 구성 요소이지만 그것을 해결할 수는 없다. –