覆盖屏幕或VerticalFieldManager上的子布局

时间:2011-05-11 16:17:08

标签: blackberry java-me

我正在向屏幕添加VerticalFieldManager。我正在绘制一个背景图像并删除屏幕底部的空白,当用户向下滚动时,我会覆盖我的verticalfieldmanager中的子布局,如下所示:

protected void sublayout( int maxWidth, int maxHeight ) {
    super.sublayout( maxWidth, maxHeight );
    setExtent(maxWidth,Constants.BACKGROUND_IMAGE.getHeight());  
}

这不起作用 - 当用户向下滚动时,屏幕底部会出现空白区域。我认为在屏幕对象上使用相同的代码覆盖子布局优先于VerticalFieldManager,它是屏幕的子节点。

1 个答案:

答案 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);
}

哪个应该让你的背景随着滚动“移动”。