두 번째 방법은 끔찍한 접근법입니다 (수직 필드 매너의 높이를 엉망으로 만들면 많은 문제가 발생합니다).
첫 번째 방법을 다시 시도하지만 이번에는 호출 super.layout
첫 번째:
DateField dtf = new DateField(label, defaultDateTime, DateField.DATE_TIME | DrawStyle.LEFT | DrawStyle.TOP | Field.FOCUSABLE | Field.READONLY )
{
protected void layout(int width, int height) {
super.layout(width, height);
Bitmap bmp = UIElements.GetBitmap(UIElements.IMG_DROPDOWN_BG, true);
width = bmp.getWidth();
height = bmp.getHeight();
super.setExtent(width, height);
}
};
이 접근법을 사용하면 나머지 클래스를 고려하지 않고 맹목적으로 방법을 무시하고 있기 때문에 결함이 발생할 수 있습니다. 이 작업을 안전하게 수행하려면 부모 클래스 소스에 액세스해야하며 그렇지 않습니다.
확장하는 것이 좋습니다 HorizontalFieldManager
(우세하다 sublayout
) 고정 된 높이를 갖기 위해 (스크롤이 고정하려는 동일한 방향으로 이동하기 때문에 VFM이 절대 없습니다). 그런 다음 사용 가능한 모든 높이를 사용하는 일반 날짜 필드 내부에 배치하십시오 (플래그를 전달하십시오. Field.USE_ALL_HEIGHT
생성자에서).