前言

  • 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习

  • 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所偏差,在学习中如果有错会及时修改内容,也欢迎万能的朋友们批评指出,谢谢

  • 文章第一版出自简书,如果出现图片或页面显示问题,烦请转至 简书 查看 也希望喜欢的朋友可以点赞,谢谢

Text 组件介绍


  • 在 React Native 用于显示文本的组件就是 Text,和iOS中的 UIlabel,Android中的 TextView类似,专门用来显示基本的文本信息,处理基本的显示布局外,还可以进行嵌套显示,设置样式,已经事件处理(如:点击事件)

Text 组件常用的属性和方法


  • color:字体颜色

    	// 字体颜色
    color:'blue'

    效果:

  • numberOfLines:设置 Text 显示文本的行数,如果显示的内容超过行数,默认其余的文本信息不再显示

    	render() {
    return (
    <View style={styles.container}>
    <Text style={styles.textStyle} numberOfLines={3}>雨泽Forest雨泽Forest雨泽Forest雨泽Forest雨泽Forest雨泽Forest雨泽Forest雨泽Forest雨泽Forest</Text>
    </View>
    );
    }

    效果:

  • fontSize:字体大小

    	// 字体大小
    fontSize:30

    效果:

  • fontFamily:字体名称

    	// 字体类型
    fontFamily:'Georgia'

    效果:

  • fontStyle('normal', 'italic'):字体风格

    	// 字体风格
    fontStyle:'italic'

    效果:

  • fontWeight('normal', 'bold', '100 ~ 900'):指定字体的粗细。大多数字体都支持'normal'和'bold'值。并非所有字体都支持所有的数字值。如果某个值不支持,则会自动选择最接近的值

    	// 字体粗细
    fontWeight:('bold', '700')

    效果:

  • textShadowOffset(width: number, height: number):设置阴影效果

  • textShadowColor:阴影效果颜色

    	// 阴影
    textShadowOffset:{width:3, height:5},
    // 阴影颜色
    textShadowColor:'black'

    效果:

  • textShadowRadius:阴影效果圆角(值越大阴影越模糊)

    	// 阴影圆角
    textShadowRadius:3

    效果:

  • letterSpacing:字符间距

    	// 字符间距
    letterSpacing:5

    效果:

  • lineHeight:行高

    	// 行高
    lineHeight:25

    效果:

  • textAlign('auto', 'left', 'right', 'center', 'justify'):文本对齐方式

    • auto
    	// 文本对齐方式
    textAlign:'auto'

    效果:

    • left
    	// 文本对齐方式
    textAlign:'left'

    效果:

    • right
    	// 文本对齐方式
    textAlign:'right'

    效果:

    • center
    	// 文本对齐方式
    textAlign:'center'

    效果:

    • justify
    	// 文本对齐方式
    textAlign:'justify'

    效果:

  • textDecorationLine('none', 'underline', 'line-through'):横线位置

    • none:没有横线
    • underline:
    	// 横线
    textDecorationLine:'underline'

    效果:

    • line-through:
    	// 横线
    textDecorationLine:'line-through'

    效果:

  • textDecorationStyle('solid', 'double', 'dotted', 'dashed'):线风格

    • solid
    	// 横线风格
    textDecorationStyle:'solid'

    效果:

    • double
    	// 横线风格
    textDecorationStyle:'double'

    效果:

    • dotted
    	// 横线风格
    textDecorationStyle:'dotted'

    效果:

    • dashed
    	// 横线风格
    textDecorationStyle:'dashed'

    效果:

  • textDecorationColor:线的颜色

    	// 线的颜色
    textDecorationColor:'black',

    效果:

  • allowFontScaling:控制字体是否要根据iOS的“文本大小”辅助选项来进行缩放

  • adjustsFontSizeToFit:指定字体是否随着给定样式的限制而自动缩放

  • minimumFontScale:当adjustsFontSizeToFit开启时,指定最小的缩放比(即不能低于这个值)。可设定的值为0.01 - 1.0

  • suppressHighlighting:当为true时,如果文本被按下,则没有任何视觉效果。默认情况下,文本被按下时会有一个灰色的、椭圆形的高光

  • selectable:决定用户是否可以长按选择文本,以便复制和粘贴

    	render() {
    return (
    <View style={styles.container}>
    <Text style={styles.textStyle}
    selectable={true}
    >
    雨泽Forest
    </Text>
    </View>
    );
    }

    效果:

  • testID:用来在端到端测试中标记这个视图

  • onPress:当文本发生点击的时候调用该方法

    	render() {
    return (
    <View style={styles.container}>
    <Text style={styles.textStyle}
    onPress={()=>{alert('点击')}}
    >
    雨泽Forest
    </Text>
    </View>
    );
    }

    效果:

  • onLongPress:当文本被长按以后调用此回调函数(参考onPress)

  • onLayout:当挂载或者布局变化以后调用(参数为:{nativeEvent: {layout: {x, y, width, height}}})(参考onPress)

Text 使用


  • 视图部分

    	render() {
    return (
    <View style={styles.container}>
    <Text style={styles.textStyle}>雨泽Forest</Text>
    </View>
    );
    }
  • 样式部分

    	var styles = StyleSheet.create({
    container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: 'green',
    }, textStyle: {
    // 背景色
    backgroundColor:'yellow',
    // 字体大小
    fontSize:30,
    // 下划横线
    textDecorationLine:'underline'
    } });

    效果:

Text 组件的嵌套使用


  • 视图部分

    	var test = React.createClass({
    render() {
    return (
    <View style={styles.container}>
    <Text style={styles.textStyle} numberOfLines={3}>
    雨泽
    <Text style={{color:'orange'}}>
    Forest
    </Text>
    </Text>
    </View>
    );
    }
    });
  • 样式部分

    	var styles = StyleSheet.create({
    container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: 'green',
    }, textStyle: {
    // 字体颜色
    color:'blue',
    // 字体大小
    fontSize:30
    } });

    效果:

Text 组件中样式的继承


  • 在 React Native 中是没有样式继承这种说法的,但对于 Text 元素里边的 Text 元素,其实是可以继承的,至于是单继承还是多继承,我们可以来试验一下

    • 视图部分
    	var test = React.createClass({
    render() {
    return (
    <View style={styles.container}>
    <Text style={styles.textStyle} numberOfLines={3}>
    <Text>
    <Text>雨泽Forest</Text>
    </Text>
    </Text>
    </View>
    );
    }
    });
    • 样式部分
    	var styles = StyleSheet.create({
    container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: 'green',
    }, textStyle: {
    // 字体颜色
    color:'blue',
    // 字体大小
    fontSize:30
    } });

    效果:

  • 通过试验我们可以看出,文字控制类的属性也是多继承的,和 CSS 是一样的,而且会取与自己最近的属性归自己所用,也就是说属性可覆盖

很多朋友私信我说更新太慢,在这里说声抱歉,因为接近春节,公司事情比较多,还请朋友们见谅,喜欢我的文章的可以点点关注,有什么不清楚或者建议可以评论或留言,谢谢!

React Native 之 Text的使用的更多相关文章

  1. React Native & Android & Text Input

    React Native & Android & Text Input react native clear input value https://stackoverflow.com ...

  2. React-Native(五):React Native之Text学习

    本章节主要学习Text的布局,仿照网易新网: 代码: /** * Sample React Native App * https://github.com/facebook/react-native ...

  3. React Native图片控件的使用

    首先定义组件 import { AppRegistry, StyleSheet, Text, View, Image,} from 'react-native'; 然后将render返回中的模版增加I ...

  4. 《React Native 精解与实战》书籍连载「配置 iOS 与 Android 开发环境」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  5. <React Native移动开发实战>-1-React Native的JSX解决方案

    JSX并不是一门新的开发语言,而是Facebook提出的语法方案:一种可以在JavaScript代码中直接书写HTML标签的语法糖,所以,JSX本质上还是JavaScript语言. 小知识:语法糖(S ...

  6. react native组件的创建

    react native组件的创建 react文件加载顺序: react项目启动后,先加载index.js.在index.js中可以指向首页. import { AppRegistry } from ...

  7. 【React Native】在原生和React Native间通信(RN调用原生)

    一.从React Native中调用原生方法(原生模块) 原生模块是JS中也可以使用的Objective-C类.一般来说这样的每一个模块的实例都是在每一次通过JS bridge通信时创建的.他们可以导 ...

  8. React Native JSX value should be expression or a quoted JSX text.

    问题描述:  我在使用props时候, 我的写法是这样的 ... <View> <Person name='john' age=32 gender=true></Pers ...

  9. React Native组件之Text

    React Native组件之Text相当于iOS中的UILabel. 其基本属性如下: /** * Sample React Native App * https://github.com/face ...

随机推荐

  1. [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序

    用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html  目录 马桶排序(令人 ...

  2. 《LoadRunner12七天速成宝典》来了

    看到自己的新书又要发行了,算算从09年第一本书开始,不知不觉已经是第四本书了(帮朋友合写的书不算),每次写完之后都会说太累了,不想再写了,但是却又次次反悔,吞下食言的苦果.如果非要说第四本书的感受,那 ...

  3. iOS UITableView 与 UITableViewController

    很多应用都会在界面中使用某种列表控件:用户可以选中.删除或重新排列列表中的项目.这些控件其实都是UITableView 对象,可以用来显示一组对象,例如,用户地址薄中的一组人名.项目地址. UITab ...

  4. C# 对象实例化 用json保存 泛型类 可以很方便的保存程序设置

    用于永久化对象,什么程序都行,依赖NewtonSoft.用于json序列化和反序列化. using Newtonsoft.Json; using System; using System.Collec ...

  5. 记录一次bug解决过程:数据迁移

    一 总结 不擅长语言表达,勤于沟通,多锻炼 调试MyBatis中SQL语法:foreach 问题:缺少关键字VALUES.很遗憾:它的错误报的让人找不着北. 二 BUG描述:MyBatis中批量插入数 ...

  6. iosselect:一个js picker项目,在H5中实现IOS的select下拉框效果

    具体文档和demo可以访问github:https://github.com/zhoushengmufc/iosselect 移动端浏览器对于select的展示样式是不一致的,ios下是类似原生的pi ...

  7. 流程表单中js如何清空SheetUser控件数据?

    昨天有人问我js怎么清空.我试了试,发现简单的赋给他空值,并没有用.只能给他赋一个真实存在的值才有用.于是跟踪了一下他的删除按钮. 效果如下 使用场景:可以根据字段的不同类别变更人员. js代码如下, ...

  8. atitit.细节决定成败的适合情形与缺点

    atitit.细节决定成败的适合情形与缺点 1. 在理论界有两种观点:一种是"细节决定成败",另一种是"战略决定成败".1 1.1. 格局决定成败,方向决定成败 ...

  9. SQL Server中SELECT会真的阻塞SELECT吗?

    在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.T ...

  10. 搭建个人wordpress博客(小白教程)

    新浪sae平台现在是有个免费个人空间使用,现在,教您如何使用该平台搭建属于自己的个人网站,本教程以wordpress程序安装包搭建个人网站. 申请新浪云账号 如果我们使用SAE新浪云计算平台作为服务器 ...