ユーザ用ツール

サイト用ツール


サイドバー

reactnative:style

以前のリビジョンの文書です


style

flex

flex:1を親に追加すると、親は全体に広がります
子にもつけると、つけた数字の割合で親の中で広がります

flexDirection

親に設定し、子の並ぶ方向を決める。
column(デフォルト):縦並び。
row:横並び。

flexWrap

親に設定し、子が画面に入りきらなかった場合の回り込みの設定をする。
nowrap(デフォルト):そのまま画面の外に伸びていく。
wrap:回り込ませる。

justifyContent

親に設定し、子の配置方法を設定する。flexDirectionに対する位置。
flex-start(デフォルト):子を先頭から配置。
flex-end:子を後ろから配置。
center:子を真ん中に配置。
space-between:子を先頭と最後に配置し、均等なスペースを他の子コンポーネントの間に挟む。
space-around:各子コンポーネントの均等なスペースを先頭の前、最後の後に加えた配置。

alignItems

親に設定し、子の横の広がり、もしくは位置を設定する。
stretch(デフォルト):伸ばして配置。
flex-start:子を先頭から配置。
flex-end:子を後ろに配置します。
center:子を真ん中に配置します
alignSelf:親の設定を子側で上書きする。alignItemsと同じ値が設定できる。

flexサンプル

flex:1を親に追加すると、親は全体に広がります

        <View style={{flex:1, backgroundColor: 'red'}}> //flex:1
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

子にもつけると、つけた数字の割合で親の中で広がります。

        <View style={{flex:1, backgroundColor: 'red'}}>
 
          <View style={{flex:1,height: 50, backgroundColor: 'powderblue'}} > //flex:1
            <Text>1.powderblue</Text>
          </View>
          <View style={{flex:2,height: 50, backgroundColor: 'skyblue'}} > //flex:2
            <Text>2.skyblue</Text>
          </View>
          <View style={{flex:3,height: 50, backgroundColor: 'steelblue'}} > //flex:3
            <Text>3.steelblue</Text>
          </View>
        </View>

flexDirectionサンプル

親に設定し、子の並ぶ方向を決める。
column(デフォルト):縦並び。

        <View style={{flex:1, flexDirection:'column' , backgroundColor: 'red'}}> // flexDirection:'column' 
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

row:横並び。

        <View style={{flex:1, flexDirection:'row' , backgroundColor: 'red'}}> // flexDirection:'row'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

flexWrapサンプル

親に設定し、子が画面に入りきらなかった場合の回り込みの設定をする。
nowrap(デフォルト):そのまま画面の外に伸びていく。

        <View style={{flex:1, flexDirection:'row' , flexWrap:'nowrap' , backgroundColor: 'red'}}> // flexWrap:'nowrap'
 
          <View style={{height: 50, width:180, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, width:180, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, width:180, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

wrap:回り込ませる。

        <View style={{flex:1, flexDirection:'row' , flexWrap:'wrap' , backgroundColor: 'red'}}> // flexWrap:'wrap'
 
          <View style={{height: 50, width:180, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, width:180, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, width:180, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

justifyContentサンプル

親に設定し、子の配置方法を設定する。flexDirectionに対する位置。
flex-start(デフォルト):子を先頭から配置。

        <View style={{flex:1, justifyContent:'flex-start', backgroundColor: 'red'}}> //justifyContent:'flex-start'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

flex-end:子を後ろから配置。

        <View style={{flex:1, justifyContent:'flex-end', backgroundColor: 'red'}}> //justifyContent:'flex-end'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

center:子を真ん中に配置。

        <View style={{flex:1, justifyContent:'center', backgroundColor: 'red'}}> //justifyContent:'center'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

space-between:子を先頭と最後に配置し、均等なスペースを他の子コンポーネントの間に挟む。

        <View style={{flex:1, justifyContent:'space-between', backgroundColor: 'red'}}> //justifyContent:'space-between'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

space-around:各子コンポーネントの均等なスペースを先頭の前、最後の後に加えた配置。

        <View style={{flex:1, justifyContent:'space-between:', backgroundColor: 'red'}}> //justifyContent:'space-around'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

alignItemsサンプル

親に設定し、子の横の広がり、もしくは位置を設定する。

stretch(デフォルト):伸ばして配置。

        <View style={{flex:1, alignItems :'stretch', backgroundColor: 'red'}}> //alignItems :'stretch'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

flex-start:子を先頭から配置。

        <View style={{flex:1, alignItems :'flex-start', backgroundColor: 'red'}}> //alignItems :'flex-start'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

flex-end:子を後ろに配置します。

        <View style={{flex:1, alignItems :'flex-end', backgroundColor: 'red'}}> //alignItems :'flex-end'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

center:子を真ん中に配置します。

        <View style={{flex:1, alignItems :'center', backgroundColor: 'red'}}> //alignItems :'center'
 
          <View style={{height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

alignSelf:親の設定を子側で上書きする。alignItemsと同じ値が設定できる。

        <View style={{flex:1, alignItems :'center', backgroundColor: 'red'}}> //alignItems :'center'
 
          <View style={{alignSelf:'flex-start',height: 50, backgroundColor: 'powderblue'}} >
            <Text>1.powderblue</Text>
          </View>
          <View style={{alignSelf:'center',height: 50, backgroundColor: 'skyblue'}} >
            <Text>2.skyblue</Text>
          </View>
          <View style={{alignSelf:'flex-end',height: 50, backgroundColor: 'steelblue'}} >
            <Text>3.steelblue</Text>
          </View>
        </View>

そのたサンプル

import { StyleSheet, Text, View , TouchableOpacity ,Button ,TextInput} from 'react-native';

  render() {
    return (
      <View style={styles.view}>
        <Text>Redux Sample</Text>

        <TouchableOpacity style={styles.button} onPress={(e)=>this.pressPlus(e)} >
          <Text>count plus</Text>
        </TouchableOpacity>

        <TouchableOpacity style={styles.button} onPress={(e)=>this.pressMinuss(e)} >
          <Text>count minus</Text>
        </TouchableOpacity>

          <TextInput          
            style={styles.input} 
            onChangeText={(e)=>this.changeName(e)}>
          {this.state.name}
          </TextInput>

        <Text>count:{this.state.count}</Text>
        <Text>name:{this.state.name}</Text>
      </View>
    );
  }

const styles = StyleSheet.create({
  view:{
    flex: 1, 
    alignItems: 'center', 
    justifyContent: 'center',
    margin:10,
  },
  button: {
    width: 200,
    height: 40,
    margin: 5 ,
    backgroundColor: 'lightblue',
    justifyContent: 'center',
    alignItems: 'center',
  },
  input: {
    width: 200,
    height: 40,
    margin: 5 ,
    backgroundColor: '#f5f5f5',
    borderColor : 'black',
    justifyContent: 'center',
    alignItems: 'center',
  },
}

reactnative/style.1549862001.txt.gz · 最終更新: 2019/02/11 14:13 by ips