一、简言

初学RN,一切皆新。Text组件主要用于显示文本,Text组件的重要性不言而喻,无论是Web开发还是客户端开发,都离不开它。它具有响应特性,也即表现为当它被触摸时是否显示为高亮状态。在Web开发中,字体样式的继承十分重要,在body上设置字体可以作用到全部的文本标签,而RN中字体样式只有在Text组件上才起作用。它支持多层嵌套,由此它存在样式继承,内部的Text组件可以继承外部Text组件的样式,也即父组件定义了相关样式,如果子组件没有重写样式的话,那么该子组件也会继承父组件定义的样式。Text组件的布局方式和View组件的布局方式不同,View组件采用FlexBox伸缩盒子布局,而Text组件则采用的是文本布局,一个接一个Text组件横向排列,如果文本到达末尾,可以换行显示。总体来说,它的主要作用概括是显示基本的文本信息,除了基本的显示布局之外,也可以进行嵌套布局,设置样式,以及做事件处理。

二、特性

onPress:该属性的值是一个函数,表示按下事件或者叫手指触摸事件。当手指按下时被触发。

numberOfLines:该属性的值是一个数字,表示显示行数,如果超过该数值,则使用省略号{...}显示。

allowFontScalling:该属性的值是一个函数,控制字体是否根据iOS的设置进行自动缩放。

onLayout:该属性的值是一个函数,用于获取该元素布局的位置和大小。例如{"target":7,"layout":{"x":10,"y":10,"width":100,"height":100}}。一般函数的事件形式为:

  1. //打印事件参数
  2. function(e){ console.log(e.nativeEvent) };

三、样式

除了继承了View组件的所有Style外,本身还具有如下样式属性:

  1. color:字体颜色
  2. fontFamily:字体名称
  3. fontStlye:字体风格(normal,italic)
  4. fontWeight:字体粗细('normal','bold','100','200')
  5. fontSize:字体大小
  6. textShadowOffset:设置阴影效果{width:number,height:number}
  7. textShaowRadius:阴影效果圆角
  8. textShadowColr:阴影效果的颜色
  9. letterSpacing:字符间距
  10. lineHeight:行高
  11. textAlign:文本对齐方式('auto','left','right','')
  12. textDecorationLine:横线位置('none','underline','line-through','underline line-through')
  13. textDecorationStyle:线的风格('solid','')
  14. textDecorationColor:线的颜色
  15. writingDirection:文本方向('auto','ltr','rtl')

四、示例

注意:下面代码中引入了PixelRatio API,PixelRatio的get方法用于获取高清设备的像素比。

NavHead.js:

  1. //采用React.createClass创建组件
  2. const React = require('react');
  3. const ReactNative = require('react-native')
  4. const {
  5. StyleSheet,
  6. View,
  7. Text,
  8. PixelRatio
  9. } = ReactNative;
  10.  
  11. const NavHead = React.createClass({
  12.  
  13. //打印事件参数
  14. print(e){
  15. console.log(e.nativeEvent)
  16. },
  17.  
  18. render(){
  19. return (
  20. <View style={styles.parent}>
  21. <View style={styles.flex}>
  22. <Text style={styles.title}>
  23. <Text style={styles.title1} onPress={this.print}>網易</Text>
  24. <Text style={styles.title2}>新闻</Text>
  25. <Text style={styles.pk}> pk </Text>
  26. <Text style={styles.title1}>紟日</Text>
  27. <Text style={styles.title2}>头条</Text>
  28. </Text>
  29. </View>
  30. </View>
  31. )
  32. }
  33. });
  34.  
  35. const styles = StyleSheet.create({
  36. parent:{
  37. height: 75,
  38. backgroundColor: '#EEE'
  39. },
  40. flex: {
  41. marginTop: 25,
  42. height: 50,
  43. borderBottomWidth: 2/PixelRatio.get(),
  44. borderBottomColor: '#EF2D36',
  45. alignItems: 'center'
  46. },
  47. title: {
  48. fontSize: 25,
  49. fontWeight: 'bold',
  50. textAlign: 'center'
  51. },
  52. pk: {
  53. color: 'green'
  54. },
  55. title1 :{
  56. color: '#CD1D1C'
  57. },
  58. title2: {
  59. color: '#FFFFFF',
  60. backgroundColor: '#CD1D1C'
  61. }
  62. });
  63.  
  64. module.exports = NavHead;

index.ios.js:

  1. /**
  2. * Sample React Native App
  3. * https://github.com/facebook/react-native
  4. * @flow
  5. */
  6.  
  7. import React, { Component } from 'react';
  8. import NavHead from './src/NavHead'
  9. import List from './src/List'
  10.  
  11. import {
  12. AppRegistry,
  13. StyleSheet,
  14. View
  15. } from 'react-native';
  16.  
  17. export default class ReactNativeDemo extends Component {
  18.  
  19. render() {
  20. return (
  21. <View style={styles.container}>
  22. <NavHead/>
  23. <List/>
  24. </View>
  25. );
  26. }
  27. }
  28.  
  29. const styles = StyleSheet.create({
  30. container: {
  31. flex: 1,
  32. backgroundColor: 'white'
  33. }
  34. });
  35.  
  36. AppRegistry.registerComponent('ReactNativeDemo', () => ReactNativeDemo);

五、打印

  1. -- ::46.298 [info][tid:com.facebook.react.JavaScript] { target: ,
  2. pageY: 42.5,
  3. locationX: ,
  4. force: ,
  5. locationY: 17.5,
  6. identifier: ,
  7. pageX: 83.5,
  8. timestamp: 143715461.59643,
  9. changedTouches: [ [Circular] ],
  10. touches: [] }

ReactNative: 使用Text文本组件的更多相关文章

  1. rich-text 副文本组件 text文本组件

    rich-text 副文本组件 要知道我们小程序常用的标签是view 但是我们想使用div   span  h1 i 标签等等,这种带特性的标签,怎么办的,我们就可以使用我们的 rich-text组件 ...

  2. Flutter Container容器组件、Text文本组件详解

    import 'package:flutter/material.dart'; void main(){ runApp(MyApp()); } class MyApp extends Stateles ...

  3. 【text】 文本组件说明

    text文本组件:在小程序里除了文本节点以外的其他节点都无法长按选中. 原型: <text selectable="[Boolean]" space="[ensp ...

  4. 微信小程序组件解读和分析:五、text文本

    text文本组件说明: text 文本就是微信小程序中显示出来的文本. text文本组件的示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 1 2 3 4 <v ...

  5. 【Flutter学习】基本组件之文本组件Text

    一,概述 文本组件(Text)负责显示文本和定义显示样式, 二,继承关系 Object > Diagnosticable > DiagnosticableTree > Widget ...

  6. Flutter学习笔记(11)--文本组件、图标及按钮组件

    如需转载,请注明出处:Flutter学习笔记(10)--容器组件.图片组件 文本组件 文本组件(text)负责显示文本和定义显示样式,下表为text常见属性 Text组件属性及描述 属性名 类型 默认 ...

  7. React-Native之轮播组件looped-carousel的介绍与使用

    React-Native之轮播组件looped-carousel的介绍与使用 一,关于react-native轮播组件的介绍与对比 1,react-native-swiper在动态使用网页图片,多张图 ...

  8. React-Native基础_4.View组件

    View组件 对应ios 的UIView android 中的view 使用要先导入View import { View } from 'react-native'; 使用就是View标签,可以添加S ...

  9. 【Unity笔记】UGUI的Text文本框的大小随着文本字数变化

    需求:UGUI的Text文本框的内容会随着文本字数多少/换行而自动改变大小. 给Text加一个Content Size Filter组件(脚本),设置Horizontal Fit和Vertical F ...

随机推荐

  1. FAQ: Oracle Flex ASM 12c / 12.1 (Doc ID 1573137.1)

    FAQ: Oracle Flex ASM 12c / 12.1 (Doc ID 1573137.1) APPLIES TO: Oracle Database - Enterprise Edition ...

  2. C#中巧用妙法避免嵌套方式使用两个foreach循环

    问题:需要对DataGridViewRow的下拉框列Item2所选内容进行判断,看是否跟数据库里面某个配置表的数据列Item1匹配.如果用两个foreach循环进行匹配,会导致逻辑复杂而且容易只bre ...

  3. MySQL数据库:合并结果集

    合并结果集 union----合并结果集 对合并后的结果集中的重复数据也会自动去重 select sName from students union select tName from Teacher ...

  4. 百度BAE专业版申购SSL证书

    这几天开发了一个小程序,本来想放到BAE基础版的,但是基础版现在不能再新增项目了,想了一下,出点血,配了个专业版.但是专业版的SSL证书是需要配的,而小程序必须使用https,所有必须申请一个证书.在 ...

  5. 编辑器之神vim的一些常用快捷键整理

    yy:复制 光标所在的这一行 4yy:复制 光标所在行开始向下的4行 p:粘贴 dd:剪切(删除) 光标所在的这一行 4dd:剪切(删除) 光标所在行向下的4行 D:从当前的光标开始向后剪切,一直到行 ...

  6. 如何在Mac上使用Netstat命令

    macOS上的netstat命令是一个终端命令,用于显示有关Mac网络通信的详细信息.网络通信包括Mac通过所有端口和所有应用程序与外界进行交流的所有方式.掌握netstat可以帮助您了解计算机之间的 ...

  7. js获取数组最大值或最小值

    数组对象arr中属性num最大值最小值 // 最大值 Math.max.apply(Math,arr.map(item => { return item.num })) arr.sort((a, ...

  8. vue组件化思想和模块化

    组件化 注册组件的基本步骤 创建组件构造器 (调用Vue.extend()方法) 注册组件 (调用Vue.component()方法) 注册组件语法糖 省去了调用Vue.extend()的步骤,而是可 ...

  9. java获取月的第一天和最后一天

    在Java中获取月的第一天和最后一天主要是通过Calendar对象来实现. /** * 获取月的第一天 * * @param month 月 */ private String getMonthBeg ...

  10. Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结

    Bootstrap时间日历插件bootstrap-datetimepicker配置与应用小结   by:授客 QQ:1033553122 1.   测试环境 win7 JQuery-3.2.1.min ...