2017-04-17 3 views
0

私は反応ネイティブのアンドロイドのコードを読もうとしています。 VirtualViewManagerとFlatViewManagerの違いは私を混乱させます。限り、私の理解として、flatViewManagerはフラットなUIの実装に使用されます。しかし、VirtualViewManagerのプルーフは何ですか? VirtualViewManagerとFlatViewManagerは互いに非常に似ていますが、2つの同様のViewManagerが一緒に存在する理由は何ですか?VirtualViewManagerとFlatViewManagerの違いは何ですか?ネイティブのアンドロイドの反応

答えて

1

Reactには、仮想レイアウトノードという概念があります。これは、Flexboxノードではないリアクションノードです。これは、通常、非仮想の親の子であり、親が測定され、配置されるのを助ける。

最良の例では、など、フォントサイズ、文字色などのスタイル情報を、保持しているRCTVirtualText、ある

たとえば、REACT次のコードを調べます。

<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の動作も異なり、クラスが異なります。たとえば、VirtualViewManagerはcreateViewInstance()から例外をスローし、FlatViewManagerは同じメソッドから新しいFlatViewGroup()を返します。

希望に役立ちます。

+0

ありがとうございました。他に質問があり、別のスレッドを開きます。 http://stackoverflow.com/questions/43465546/what-is-the-purpose-of-flatviewmanager-in-react-native-android – York

関連する問題