更新Android视图后,是否有更好的方法来重新渲染本机组件

时间:2019-01-19 05:39:54

标签: android react-native

我有一个本机组件视图,它通过createViewInstance从Android传递到RN 完美呈现。但是,当我在本机端运行时在其中添加子视图时,永远不会渲染该子视图。

我必须在本地调用requestLayout()invalidate()才能显示孩子。有时我需要对本机视图的大小进行额外的处理,因为它已设置为0。 有什么更好的方法可以强制RN重新渲染本机组件?

1 个答案:

答案 0 :(得分:0)

您可以将以下内容添加到本机视图组件中。

@Override
  public void requestLayout() {
    super.requestLayout();
    post(measureAndLayout);
  }

  private final Runnable measureAndLayout =
      new Runnable() {
        @Override
        public void run() {
          measure(
              MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.EXACTLY),
              MeasureSpec.makeMeasureSpec(getHeight(), MeasureSpec.EXACTLY));
          layout(getLeft(), getTop(), getRight(), getBottom());
        }
      };