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

    xiaoxiao2021-03-25  167

    前言

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

    方法

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

    class AutoExpandingInput extends Component{ onContentSizeChange(event) { this.setState({height: event.nativeEvent.contentSize.height}); } render() { return ( <TextInput {...this.props} multiline={true} onChange={this.onChange} onContentSizeChange={this.onContentSizeChange.bind(this)} style={[styles.textInputStyle,{height:Math.max(35,this.state.height)}]} value={this.state.text} /> ); } }

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

    使用:

    render() { return ( <View style={styles.container}> <AutoExpandingInput style={styles.textInputStyle} onChangeText={this._onChangeText} /> </View> );
    转载请注明原文地址: https://ju.6miu.com/read-2495.html

    最新回复(0)