Blackberry VerticalfieldManager虚拟滚动视图大小太大

时间:2012-08-03 10:58:48

标签: blackberry scrollview

在黑莓(OS 7.0)上开发,我有一个扩展的垂直字段管理器,如下所示:

_myVFM = new MyViewManager(Manager.USE_ALL_WIDTH | Manager.USE_ALL_HEIGHT | Manager.VERTICAL_SCROLL){};

但是,当我滚动视图时,虚拟滚动视图大小显得太大了。 也就是说,我可以滚动得比我需要的更多,我无法找出原因?

任何机构都有任何快速的想法?我确实在那里创建了一个背景图像:

public void paint(Graphics graphics)
{
    Bitmap backgroundBitmap = Bitmap.getBitmapResource("bg.png");
    Bitmap newBackground = new Bitmap(Display.getWidth(), Display.getHeight());
    backgroundBitmap.scaleInto(newBackground, Bitmap.FILTER_LANCZOS, Bitmap.SCALE_TO_FILL);

    graphics.clear();
    graphics.drawBitmap(0, 0, Display.getWidth(),            
             Display.getHeight(), newBackground, 0, 0);                 
    super.paint(graphics);
}

请,谢谢,

挖洞

3 个答案:

答案 0 :(得分:0)

在构造函数中不需要USE_ALL_HEIGHT。

//改为使用此

_myVFM = new MyViewManager(Manager.USE_ALL_WIDTH | Manager.VERTICAL_SCROLL){};

答案 1 :(得分:0)

您可以重新定义方法以定义经理的高度

protected void setExtent(int width, int height) {
    super.setExtent(width, myHeight);
}

要重新定义背景图像,重新定义以下方法,返回false

protected boolean isScrollCopyable() {
    return false;
}

另一个评论是,从paint方法获取图像是一种不好的做法。你正在做的是每次你调用paint方法都会得到这个图像。 最好先获取图像然后再使用它。

答案 2 :(得分:0)

    public MyScreen() {
    super(NO_VERTICAL_SCROLL);

我设法使用'NO_VERTICAL_SCROLL'样式参数在我的MainScreen扩展中解决了这个问题

结合Rupak建议在Vertical Field Manager的构造函数中设置Background而不是覆盖paint( https://gist.github.com/3248319

现在一切似乎都很好 - 感谢所有人的帮助。

挖洞