[英]Native UI Components - Refresh when Android views update
我們正在嘗試實現一個本地 UI 組件,它包裝了一個 Android 組件,該組件使用我們現有的渲染框架(使用AdapterView
)獲取數據並顯示它。 我們事先並不知道數據會是什么,所以這個組件的高度和內容完全是任意的。 這大部分工作正常,除了渲染組件異步請求其他東西(例如圖像)的情況。 在這種情況下,圖像被檢索, ImageView
被“顯示”,但 UI 最終什么也不顯示(字面意思似乎是適當大小的透明視圖)。
我們知道這些視圖在普通 Android 中工作得很好,但我們似乎缺少一些東西告訴 RN/Yoga 它應該在從服務器加載圖像時重新渲染以便它們正確顯示。 這或多或少是這樣的:
public class ReactServerListComponent extends SimpleViewManager<LinearLayoutExtension> {
private static final String REACT_CLASS = "TAReactServerListComponent";
@Override
public String getName() {
return REACT_CLASS;
}
...
@ReactProp(name = "link")
public void setLink(final LinearLayoutExtension view, String theNewLink){
//async loader logic invokes this on success
view.loadRetrievedEntries(newEntries);
}
...
}
在這種情況下, LinearLayoutExtension
包含 Adapter 生成的所有視圖,而 Adapter 又將包含異步加載的圖像視圖。
我們已經嘗試了一些方法,比如返回帶有測量函數的ShadowNode
,或者保留ShadowNode
的引用並在其上調用dirty()
等。
這樣做的正確方法是什么? 不幸的是,我們沒有找到處理“檢查存儲庫”之外真正復雜組件的文檔或示例......
您可以在該組上嘗試view.invalidate()
。 您還可以刪除占位符 imageview 並添加具有正確圖像的新視圖。
但是,如果它只是刷新圖像視圖,您還可以使用 volley、Picasso、Glide 等...來處理圖像視圖本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.