第二种方法是一种可怕的方法(与VerticalFieldManager的高度混乱会给您带来很多问题)。
再次尝试第一个方法,但是这次致电 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
在构造函数中)。