ReactNative многострочный TextInput не обнаруживает нажатия на пустые строки - PullRequest
0 голосов
/ 30 октября 2019

Я пытался заставить мой TextInput фокусироваться (открывать клавиатуру), когда я нажимаю в любом месте внутри (серого) многострочного поля, но он только обнаруживает касания в строках с текстом (или заполнителем).

Можно ли заставить TextInput фокусироваться, когда я щелкаю где-нибудь в серой области?

   <ScrollView style={{ flex: 1}}>

    <View style = {Style.dropdownField}>
      <Dropdown
        label={'Motivo'}
        data={this.props.remiseExcusesData}
        value={this.state.remiseExcuses.value}            
        onChangeText={(value,index, data)=> this.setState({remiseExcuses:data[index]})}
      />
    </View>
    <View style = {{ height:150, marginHorizontal:20, backgroundColor:'#f9f9f9', marginTop:20}}>
    <TextInput
      style={Style.minitextInput}
      placeholder={'Escribir motivo'}
      textAlign={'left'}
      autoCorrect={false}
      autoCapitalize={'none'}
      underlineColorAndroid='transparent'
      multiline
      onChangeText={(text) => this.setState({motive:text})  }
      value={this.state.motive}
      onFocus={() => console.log('Fire only on tap')}
    />
    </View>
   </ScrollView>

enter image description here

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Вы можете использовать это для обработки фокуса серого поля.

<TouchableOpacity style = {{ height:150, marginHorizontal:20, backgroundColor:'#f9f9f9', marginTop:20}} onPress={this.onPressGrayBox}>
    <TextInput
      ref="textInput"
      style={{ height: 150, textAlignVertical: 'top' }}
      placeholder={'Escribir motivo'}
      textAlign={'left'}
      autoCorrect={false}
      autoCapitalize={'none'}
      underlineColorAndroid='transparent'
      multiline
      onChangeText={(text) => this.setState({motive:text})  }
      value={this.state.motive}

    />
    </TouchableOpacity> 

объявите метод для обработки действия, это поможет автоматически установить фокус ввода текста.

onPressGrayBox=()=>{
  this.refs.textInput.focus()
}

Это помогает мне, пожалуйста, используйте

0 голосов
/ 30 октября 2019

Вы можете обрабатывать что-то вроде

   <View style = {{ height:150, marginHorizontal:20, backgroundColor:'#f9f9f9', marginTop:20}}>
    <TextInput
      style={{ height: 150, textAlignVertical: 'top' }}
      placeholder={'Escribir motivo'}
      textAlign={'left'}
      autoCorrect={false}
      autoCapitalize={'none'}
      underlineColorAndroid='transparent'
      multiline
      onChangeText={(text) => this.setState({motive:text})  }
      value={this.state.motive}
      onFocus={() => console.log('Fire only on tap')}
    />
    </View>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...