我在使用 React-Native 中的原生 UI 组件时遇到问题。情况是我在 Android 中有一个现有的、正常运行的、完整的布局,我需要在 react-native View 中重用。
现有布局(在 Android 中):
- 有一个加载布局
- 有一个 RecyclerView
- 在显示加载布局时执行 api 调用
- 完成后更新 RecyclerView 并隐藏加载布局
- 在原生环境中完美运行。
为了公开这个现有布局并在 React-Native 中使用它,我按照说明做了 通过docs .不需要公开属性、回调或事件,因为现有布局已关闭并按原样工作。
React-Native View :
- 是一个简单的 View
- 导入文档中描述的现有布局
- 实际显示现有布局的初始加载布局
加载数据时出现问题。通过调试,您可以看到代码已运行以更新布局,但视觉上并未显示。 加载布局一直显示,直到您执行滚动手势重新绘制屏幕并显示带有加载数据的 RecyclerView。就好像 RecyclerView 已经存在但没有显示。
有人知道可能是什么问题吗?
提前致谢!
最佳答案
尝试添加此功能,并将 base_svg 更改为您不满意的 View :
private final Runnable measureAndLayout = new Runnable() {
@Override
public void run() {
base_svg.measure(
View.MeasureSpec.makeMeasureSpec(base_svg.getWidth(), View.MeasureSpec.EXACTLY),
View.MeasureSpec.makeMeasureSpec(base_svg.getHeight(), View.MeasureSpec.EXACTLY));
base_svg.layout(base_svg.getLeft(), base_svg.getTop(), base_svg.getRight(), base_svg.getBottom());
}
};
将新信息添加到屏幕后调用该函数:
base_svg.post(measureAndLayout);
检查它是否呈现您添加或删除的新 View 。
老实说,我不知道为什么。但这对我有用。我认为 react 迫使你只在 react 需要时渲染。 检查这个issue以获得更多理解。
关于android - native Android UI 组件未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46609588/