gpt4 book ai didi

android - native Android UI 组件未更新

转载 作者:行者123 更新时间:2023-11-29 19:07:34 27 4
gpt4 key购买 nike

我在使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com