dmo*_*mon 5 android-layout react-native react-native-native-ui-component
我们正在尝试实现一个原生 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);
}
...
}
Run Code Online (Sandbox Code Playgroud)
在本例中,LinearLayoutExtension包含适配器生成的所有视图,而适配器又将包含异步加载的图像视图。
我们尝试了一些事情,例如返回ShadowNode带有测量函数的 a ,或者保留 a 的引用并对其进行ShadowNode调用等。dirty()
这样做的正确方法是什么?不幸的是,我们还没有找到处理“检查存储库”之外的真正复杂组件的文档或示例......
小智 1
你可以view.invalidate()去组里试试 您还可以删除占位符图像视图并添加具有正确图像的新视图。
但是,如果它只是刷新图像视图,您也可以使用 volley、Picasso、Glide 等工具来处理图像视图本身。
| 归档时间: |
|
| 查看次数: |
868 次 |
| 最近记录: |