React Native 之TextInput 高度自增长扩展实现

新建一组件  ImageEqualEnlarge.js

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

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


export default class AutoExpandingTextInput extends Component {

  constructor(props) {
    super(props);
    this.state = {
      text:'',
      height:0
    };
    this.onChange=this._onChange.bind(this);
  }

  _onChange(event){
    this.setState({
       text:event.nativeEvent.text,
       height:event.nativeEvent.contentSize.height,
     });
  }

  render() {
    return (
      <TextInput {...this.props}
       multiline={true}
       onChange={this.onChange}
       style={[styles.textInputStyle,{height:Math.max(35,this.state.height)}]}
       value={this.state.text}
       >
      </TextInput>
    );
  }


}

const styles = StyleSheet.create({
  textInputStyle:{
    fontSize:40,
    width:300,
    height:30,
    alignItems: 'center',
    backgroundColor:'grey',
    paddingTop:0,
    paddingBottom:0
  }

});

在index.android.js 引用

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Image,
  Text,
  TouchableHighlight,
  TextInput,
  StatusBar,
  View
} from 'react-native';

import AutoExpandingTextInput from './AutoExpandingTextInput'

export default class ViewProject extends Component {

     _onChangeText(newText) {
        console.log('inputed text:' + newText);
    }

  render() {
    return (
      <View style={styles.container}>
        <AutoExpandingTextInput 
          onChangeText={(newText)=>{this._onChangeText(newText)}}
        />
      </View>
    );
  }


}



const styles = StyleSheet.create({
  container: {
    flex:1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor:'#F5FCFF'
  }
});
AppRegistry.registerComponent('ViewProject', () => ViewProject);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值