美文网首页
ReactNative学习笔记(五)样式&高度宽度&Flexbo

ReactNative学习笔记(五)样式&高度宽度&Flexbo

作者: 维仔_411d | 来源:发表于2020-02-12 23:24 被阅读0次

样式

  • 所有核心组件都接受style属性,建议使用StyleSheet.create来集中定义组件的样式;
  • style中可以传入单一的样式,也可以传入样式数组,与css中的规则一样,同一样式对象 处于后面的样式优先级更高 会覆盖前面的样式;
  • 样式名基本上遵循了web上的css的命名,但按照JS的语法要求使用了驼峰命名,如css中的background-color 改为backgroundColor;
import React, {Component} from 'react';
import {StyleSheet, Text, View} from 'react-native';
const styles = StyleSheet.create({
    bigBlue:{
        color:'blue',
        fontWeight:"700",
        fontSize:60,
    },
    red:{
        color:"#f60",
        fontSize:30,
    }
});
export default class BlinkApp extends Component {
    render(){
        return (
            <View>
                <Text style={styles.bigBlue}>just blue</Text>
                <Text style={[styles.bigBlue, styles.red]}>blue then red</Text>
                <Text style={[styles.red, styles.bigBlue]}>red then blue</Text>
            </View>
        );
    }
}
颜色、字号的简单样式

高度与宽度

const styles = StyleSheet.create({
    textAlignCenter:{
        alignItems:'center'
    },
    greyBackground:{
        backgroundColor: '#f3F3F3'
    },
    greenBackground:{
        backgroundColor: '#00e789',
    },
    sHeight100:{
        height:100, // 指定宽高
    }

});

<View style={{flex:1}}> // 弹性宽高, 方向的指定与css中一致 flexDirection:column|row
  <View style={[{flex:1,styles.textAlignCenter, styles.greyBackground}]}</View>
  <View style={[styles.sHeight100, styles.textAlignCenter, styles.greenBackground}]}</View>
</View>

使用Flexbox布局

  • flexDirection —— Flex Direction column(default)|row
    决定布局的主轴是垂直方向(默认垂直方向)还是水平方向
  • alignItems —— Layout Direction stretch(default) | center| flex-start | flex-end | baseline
    定义flex子项在flex容器的侧轴(与主轴方向垂直,对RN来说是水平方向)方向上的对齐方式
  • justifyContent—— Justify Content flext-start | flext-end | center |space-between | space-around | space-evenly
    用于设置或检索弹性盒子元素在主轴方向(对RN来说是垂直方向)上的对齐方式。
render(){
        return (
            <View style={{flex:1, flexDirection:'column'}}>
                <Text style={{height:30}}>flex-start↓</Text>
                <View style={{flex:1, flexDirection:'row', justifyContent:'flex-start', textAlign:'center'}}>
                    <View style={{width:70, height:70,  backgroundColor:'coral'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'lightblue'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'khaki'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'pink'}}></View>
                </View>
                <Text style={{height:30}}>flex-end↓</Text>
                <View style={{flex:1, flexDirection:'row', justifyContent:'flex-end'}}>
                    <View style={{width:70, height:70,  backgroundColor:'coral'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'lightblue'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'khaki'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'pink'}}></View>
                </View>
                <Text style={{height:30}}>center↓</Text>
                <View style={{flex:1, flexDirection:'row', justifyContent:'center'}}>
                    <View style={{width:70, height:70,  backgroundColor:'coral'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'lightblue'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'khaki'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'pink'}}></View>
                </View>
                <Text style={{height:30}}>space-between↓</Text>
                <View style={{flex:1, flexDirection:'row', justifyContent:'space-between'}}>
                    <View style={{width:70, height:70,  backgroundColor:'coral'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'lightblue'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'khaki'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'pink'}}></View>
                </View>
                <Text style={{height:30}}>space-around↓</Text>
                <View style={{flex:1, flexDirection:'row', justifyContent:'space-around'}}>
                    <View style={{width:70, height:70,  backgroundColor:'coral'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'lightblue'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'khaki'}}></View>
                    <View style={{width:70, height:70,  backgroundColor:'pink'}}></View>
                </View>
            </View>
        );
    }
justifyContent效果图

相关文章

网友评论

      本文标题:ReactNative学习笔记(五)样式&高度宽度&Flexbo

      本文链接:https://www.haomeiwen.com/subject/jctqfhtx.html