Files
react-native/docs/autogen_Text.md
T
2017-08-31 11:29:32 -07:00

19 KiB

id, title, category, permalink
id title category permalink
text Text Components docs/text.html

A React component for displaying text.

Text supports nesting, styling, and touch handling.

In the following example, the nested title and body text will inherit the fontFamily from styles.baseText, but the title provides its own additional styles. The title and body will stack on top of each other on account of the literal newlines:

import React, { Component } from 'react'; import { AppRegistry, Text, StyleSheet } from 'react-native';

export default class TextInANest extends Component { constructor(props) { super(props); this.state = { titleText: "Bird's Nest", bodyText: 'This is not really a bird nest.' }; }

render() { return ( <Text style={styles.baseText}> <Text style={styles.titleText} onPress={this.onPressTitle}> {this.state.titleText}{'\n'}{'\n'} </Text> <Text numberOfLines={5}> {this.state.bodyText} </Text> </Text> ); } }

const styles = StyleSheet.create({ baseText: { fontFamily: 'Cochin', }, titleText: { fontSize: 20, fontWeight: 'bold', }, }); // skip this line if using Create React Native App AppRegistry.registerComponent('TextInANest', () => TextInANest);

Props #

accessible?: bool #

When set to true, indicates that the view is an accessibility element. The default value for a Text element is true.

See the Accessibility guide for more information.

allowFontScaling?: bool #

Specifies whether fonts should scale to respect Text Size accessibility settings. The default is true.

ellipsizeMode?: enum('head', 'middle', 'tail', 'clip') #

When numberOfLines is set, this prop defines how text will be truncated. numberOfLines must be set in conjunction with this prop.

This can be one of the following values:

  • head - The line is displayed so that the end fits in the container and the missing text at the beginning of the line is indicated by an ellipsis glyph. e.g., "...wxyz"
  • middle - The line is displayed so that the beginning and end fit in the container and the missing text in the middle is indicated by an ellipsis glyph. "ab...yz"
  • tail - The line is displayed so that the beginning fits in the container and the missing text at the end of the line is indicated by an ellipsis glyph. e.g., "abcd..."
  • clip - Lines are not drawn past the edge of the text container.

The default is tail.

clip is working only for iOS

nativeID?: string #

Used to locate this view from native code.

numberOfLines?: number #

Used to truncate the text with an ellipsis after computing the text layout, including line wrapping, such that the total number of lines does not exceed this number.

This prop is commonly used with ellipsizeMode.

onLayout?: function #

Invoked on mount and layout changes with

{nativeEvent: {layout: {x, y, width, height}}}

onLongPress?: function #

This function is called on long press.

e.g., onLongPress={this.increaseSize}>

onPress?: function #

This function is called on press.

e.g., onPress={() => console.log('1st')}

pressRetentionOffset?: {top: number, left: number, bottom: number, right: number} #

When the scroll view is disabled, this defines how far your touch may move off of the button, before deactivating the button. Once deactivated, try moving it back and you'll see that the button is once again reactivated! Move it back and forth several times while the scroll view is disabled. Ensure you pass in a constant to reduce memory allocations.

selectable?: bool #

Lets the user select text, to use the native copy and paste functionality.

style?: style #

color color
fontFamily string
fontSize number
fontStyle enum('normal', 'italic')
fontWeight enum('normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')

Specifies font weight. The values 'normal' and 'bold' are supported for most fonts. Not all fonts have a variant for each of the numeric values, in that case the closest one is chosen.

lineHeight number
textAlign enum('auto', 'left', 'right', 'center', 'justify')

Specifies text alignment. The value 'justify' is only supported on iOS and fallbacks to left on Android.

textDecorationLine enum('none', 'underline', 'line-through', 'underline line-through')
textShadowColor color
textShadowOffset {width: number, height: number}
textShadowRadius number
androidincludeFontPadding bool

Set to false to remove extra font padding intended to make space for certain ascenders / descenders. With some fonts, this padding can make text look slightly misaligned when centered vertically. For best results also set textAlignVertical to center. Default is true.

androidtextAlignVertical enum('auto', 'top', 'bottom', 'center')
iosfontVariant [enum('small-caps', 'oldstyle-nums', 'lining-nums', 'tabular-nums', 'proportional-nums')]
iosletterSpacing number
iostextDecorationColor color
iostextDecorationStyle enum('solid', 'double', 'dotted', 'dashed')
ioswritingDirection enum('auto', 'ltr', 'rtl')

testID?: string #

Used to locate this view in end-to-end tests.

androiddisabled?: bool #

Specifies the disabled state of the text view for testing purposes

androidselectionColor?: color #

The highlight color of the text.

androidtextBreakStrategy?: enum('simple', 'highQuality', 'balanced') #

Set text break strategy on Android API Level 23+, possible values are simple, highQuality, balanced The default value is highQuality.

iosadjustsFontSizeToFit?: bool #

Specifies whether font should be scaled down automatically to fit given style constraints.

iosminimumFontScale?: number #

Specifies smallest possible scale a font can reach when adjustsFontSizeToFit is enabled. (values 0.01-1.0).

iossuppressHighlighting?: bool #

When true, no visual change is made when text is pressed down. By default, a gray oval highlights the text on press down.