我有一个本机组件视图,它通过createViewInstance
从Android传递到RN
完美呈现。但是,当我在本机端运行时在其中添加子视图时,永远不会渲染该子视图。
我必须在本地调用requestLayout()
,invalidate()
才能显示孩子。有时我需要对本机视图的大小进行额外的处理,因为它已设置为0。
有什么更好的方法可以强制RN重新渲染本机组件?
答案 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());
}
};