簡體   English   中英

本機 UI 組件 - 在 Android 視圖更新時刷新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM