2017-04-17 46 views
0

我想讀取反應原生android的代碼。令我困惑的是VirtualViewManager和FlatViewManager之間的區別。就我的理解而言,flatViewManager用於平面UI實現。但是,VirtualViewManager的瞳孔是什麼? VirtualViewManager和FlatViewManager是非常相似的,有兩個相似的ViewManager存在在一起的原因嗎?VirtualViewManager和FlatViewManager在反應原生android之間有什麼區別

回答

1

在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()。

希望有所幫助。

+0

明白了,謝謝。我有其他問題,我會打開另一個線程。 http://stackoverflow.com/questions/43465546/what-is-the-purpose-of-flatviewmanager-in-react-native-android – York

相關問題