2016-05-24 6 views
6

Android VieGroupのように機能するReact Nativeの 'View'コンポーネントがあることは知っていますが、LinearLayoutとしてどのように動作する可能性が高いのですか?子供は行や列に配置されます。React Nativeで 'FameLayout'コンポーネントを達成するには?

「FrameLayout」の動作を達成する方法が不思議です - 子供はレイアウトに積み重ねられ、各子供には一意の重力位置が割り当てられます。

例: コンポーネントに5つの子を置くと、4つの子がそれぞれレイアウトの各隅に揃えられ、最後の子はレイアウトの中央に揃えられます。

どのようにネイティブ 'レンダリング'機能を書くか?

答えて

5

これは、position: 'absolute'を使用して、上、左、右、下のプロパティを揃えて行うことができます。ここでは、作業サンプルrnplayにも

'use strict'; 

var React = require('react-native'); 
var { 
    AppRegistry, 
    StyleSheet, 
    Text, 
    View, 
} = React; 

var SampleApp = React.createClass({ 
    render: function() { 
    return (
     <View style={styles.container}> 
       <Text style={styles.topLeft}> Top-Left</Text> 
       <Text style={styles.topRight}> Top-Right</Text> 
     <Text>Center</Text> 
     <Text style={styles.bottomLeft}> Bottom-Left</Text> 
     <Text style={styles.bottomRight}> Bottom-Right</Text> 
     </View> 
    ); 
    } 
}); 

var styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    justifyContent: 'center', 
    alignItems: 'center', 
    backgroundColor: '#F5FCFF', 
    marginTop: 24 
    }, 
    topLeft:{ 
    position: 'absolute', 
    left: 0, 
    top: 0 
    }, 
    topRight:{ 
    position: 'absolute', 
    right: 0, 
    top: 0 
    }, 
    bottomLeft:{ 
    position: 'absolute', 
    left: 0, 
    bottom: 0 
    }, 
    bottomRight:{ 
    position: 'absolute', 
    right: 0, 
    bottom: 0 
    } 
}); 

AppRegistry.registerComponent('SampleApp',() => SampleApp); 

https://rnplay.org/apps/n6JJHg

+0

すごいです、それは素晴らしいです!私はReact Nativeの公式フレックスボックス文書を読んでいた時私はちょっと不注意だと思います。ありがとうございました! – Harreke

関連する問題