黑莓布局改变了场地的高度

时间:2010-09-23 23:42:59

标签: blackberry layout field

我创建了一个自定义字段,用于从网址加载图片。我想要做的是让字段占用空间,然后在加载图像时将其自身调整为图像的大小。我几乎已经完成了所有工作但是我无法找到一种方法来在加载图像后重新完成布局。如果我事先指定图像的大小,它可以工作。在父屏幕上调用invalidateLayout将不起作用,因为屏幕可见,但只是调用invalidate什么都不做。我必须采取哪些步骤才能调整字段大小?

如果我可以在自定义视图而不是父视图上调用该方法,这也是更好的选择,但这不是必需的。

这适用于黑莓4.5.0。

1 个答案:

答案 0 :(得分:1)

首先,您必须使父管理器无效,因为它确实需要自定义字段的新大小才能正确地重新绘制整个管理器。 (如果在自定义之后管理器中还有其他字段,或者甚至是滚动字段)。

在我的脑海中,您可以尝试实施以下两种解决方案:

  • 下载图片完成自定义字段后,请致电父级经理以使其中的所有字段无效(您必须在自定义字段中保留对父级经理的引用)

- 或 -

  • 创建自定义字段对象,而不将其添加到管理器。开始下载图像,完成后,调用父特定方法,将自定义字段添加到管理器(您仍需要在自定义字段中保存对父管理器的引用)(如果需要,可以使用插入)将它添加到管理器上已存在的两个字段之间)。就像那样,您不必调整字段大小,只需在准备好显示时将其添加到管理器中。

回答您的评论:

然后你应该使用synchronized范围:

synchronized(UiApplication.getUiApplication().getEventLock())) {  
    // UI Code here  
}  

基本上在此范围内,您应该只使用无效,在此次通话之前在其他地方进行尺寸更改。