2010-09-23 100 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