加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:27:23 所属栏目:百科 来源:网络整理
导读:新建一组件 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 Au

新建一组件 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,TouchableHighlight,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',backgroundColor:'#F5FCFF'
  }
});
AppRegistry.registerComponent('ViewProject',() => ViewProject);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读