React-Native之TextInput实现高度自增长解决方案

前端之家收集整理的这篇文章主要介绍了React-Native之TextInput实现高度自增长解决方案前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

TextInput在部分业务场景下, 需要随着字体多少进行高度自行调节,那么这个效果如何实现呢?

方法

为了方便重用,我们定义一个公用的组件:

  1. class AutoExpandingInput extends Component{
  2. onContentSizeChange(event) {
  3. this.setState({height: event.nativeEvent.contentSize.height});
  4. }
  5. render() {
  6. return (
  7. <TextInput {...this.props}
  8. multiline={true}
  9. onChange={this.onChange}
  10. onContentSizeChange={this.onContentSizeChange.bind(this)}
  11. style={[styles.textInputStyle,{height:Math.max(35,this.state.height)}]}
  12. value={this.state.text}
  13. />
  14. );
  15. }
  16. }

这里主要使用Math函数,和onContentSizeChange监听当前尺寸变化,更新state。

使用:

  1. render() {
  2. return (
  3. <View style={styles.container}>
  4. <AutoExpandingInput style={styles.textInputStyle} onChangeText={this._onChangeText} />
  5. </View>
  6. );

猜你在找的React相关文章