VirtualViewManager和FlatViewManager在反应原生android之间有什么区别
问题描述:
我想读取反应原生android的代码。令我困惑的是VirtualViewManager和FlatViewManager之间的区别。就我的理解而言,flatViewManager用于平面UI实现。但是,VirtualViewManager的瞳孔是什么? VirtualViewManager和FlatViewManager是非常相似的,有两个相似的ViewManager存在在一起的原因吗?VirtualViewManager和FlatViewManager在反应原生android之间有什么区别
答
在React中,有一个虚拟布局节点的概念,它是一个不是Flexbox节点的React节点。它通常是非虚拟父母的孩子,并帮助父母进行测量和布局。
最好的例子是一个RCTVirtualText,其保持定型的信息,例如字体大小,文本颜色等
例如,检查下面的反应的代码:
<Text color=green>
He
<Text size=11>ll</Text>
o
</Text>
将实际扩展到以下:
<RCTText color=green>
<RCTRawText>He</RCTRawText>
<RCTVirtualText size=11>
<RCTRawText>ll</RCTRawText>
</RCTVirtualText>
<RCTRawText>o</RCTRawText>
</RCTText>
RCTVirtualText和RCTRawText是虚拟节点,它们不能被测量和只存在一个整体RCTText的作为组成部分。
虚拟节点永远不会映射到Android视图(顶级RCTText可以映射到TextView,但内部虚拟节点不会)。回到ViewManagers,由于虚拟和非虚拟节点的行为不同,它们对应的ViewManagers的行为也不同,因此具有不同的类。例如,VirtualViewManager从createViewInstance()抛出异常,而FlatViewManager从同一方法返回一个新的FlatViewGroup()。
希望有所帮助。
明白了,谢谢。我有其他问题,我会打开另一个线程。 http://stackoverflow.com/questions/43465546/what-is-the-purpose-of-flatviewmanager-in-react-native-android – York