Skip to content

Weopt/react-native-measure-text

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Native Measure Text

Measure text height without laying it out.

npm version

Installation

Automatic installation

$ yarn add react-native-measure-text

$ react-native link react-native-measure-text

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-measure-text and add RNMeasureText.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNMeasureText.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import io.github.airamrguez.RNMeasureTextPackage; to the imports at the top of the file
  • Add new RNMeasureTextPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-measure-text'
    project(':react-native-measure-text').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-measure-text/android')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-measure-text')
    

Usage

import MeasureText from 'react-native-measure-text';

const texts = [
  'This is an example',
  'This is the second line'
];
const width = 100;
const fontSize = 15;

class Test extends Component {
  state = {
    heights: [],
  }
  async componentDidMount() {
    const heights = await MeasureText.measure({(
      texts, /* texts to measure */
      width, /* container width */
      fontSize
    );
    this.setState({ heights });
  }
  render() {
    const { heights } = this.state;
    return (
      <View>
        {texts.map((text, i) => (
          <Text
            key={`text-${i}`}
            style={{
              width,
              fontSize,
              height: heights[i],
            }}
          >
            {text}
          </Text>
        ));
      );}
    </View>
  }
}

About

Measure text width and/or height without laying it out.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 52.5%
  • Objective-C 35.0%
  • Ruby 10.6%
  • JavaScript 1.9%