2010-09-23 89 views
1

我有一个自定义字段,我已经创建了从url加载图片。我想要做的是让该领域不占用空间,然后在图像加载时将其自身大小调整为图像的大小。我已经完成了几乎所有的事情,但我无法找到一种方法在图像加载后重新完成布局。如果我事先指定了图像的大小,它将起作用。在父项上调用invalidateLayout将不起作用,因为屏幕是可见的,但只是调用invalidate什么也不做。我必须采取哪些步骤来进行字段大小调整?黑莓布局更改字段高度

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

这是黑莓4.5.0。

回答

1

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

在我的头顶,这里有两种解决方案,你可以尝试实施:

  • 当您的自定义字段进行下载图像,调用父管理者无效在所有领域(你将有在您的自定义字段抱到父管理者参考)

- 或 -

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

回答您的评论:

那么你应该使用的同步范围:

synchronized(UiApplication.getUiApplication().getEventLock())) { 
    // UI Code here 
} 
在此范围内

基本上,你应该只使用一个无效,做你的尺寸变化别处,在这个电话之前。

+0

我设法通过调整孩子的大小,以某种方式让我的应用程序的一部分工作。我在这两种方法中遇到的问题是,当它们在UI线程之外执行时,它会导致崩溃 – skorulis 2010-11-15 01:18:43

+0

阅读编辑的帖子... – TheSquad 2010-11-15 10:22:54