我正在向屏幕添加VerticalFieldManager。我正在绘制一个背景图像并删除屏幕底部的空白,当用户向下滚动时,我会覆盖我的verticalfieldmanager中的子布局,如下所示:
protected void sublayout( int maxWidth, int maxHeight ) {
super.sublayout( maxWidth, maxHeight );
setExtent(maxWidth,Constants.BACKGROUND_IMAGE.getHeight());
}
这不起作用 - 当用户向下滚动时,屏幕底部会出现空白区域。我认为在屏幕对象上使用相同的代码覆盖子布局优先于VerticalFieldManager,它是屏幕的子节点。
答案 0 :(得分:2)
要检查几件事。如果在您的主屏幕上,您正在呼叫super(VERTICAL_SCROLL | USE_ALL_WIDTH)
,那么您的屏幕管理员将是实际向下滚动的经理,而不是您自定义的VFM。您可以尝试覆盖VFM的paint()方法并执行以下操作:
protected void paint(Graphics graphics) {
graphics.drawBitmap(0, getVerticalScroll(), bg.getWidth(), bg.getHeight(), bg, 0, 0);
super.paint(graphics);
}
哪个应该让你的背景随着滚动“移动”。