Почему scrollToEnd () не работает на Android? - PullRequest
0 голосов
/ 19 июня 2020

В настоящее время я настроил его таким образом, что когда пользователь открывает клавиатуру, она прокручивается вниз, когда вид прокрутки сжимается.

<ScrollView
          contentContainerStyle={{ flexGrow: 1 }}
          ref={(ref) => (this.scrollView = ref)}
>
 <TextInput
     onFocus = {this.scrollDown}
/>

scrollDown = () => {
     this.scrollView.scrollToEnd();
}

Это работает на IOS отлично, но не похоже работать над Android.

Android: https://imgur.com/a/9HfaCMd

iOS: https://imgur.com/a/dB1WeoW

1 Ответ

0 голосов
/ 19 июня 2020

- Обновление -

После просмотра вашей записи выяснилось, что это не вызвано scrollToEnd.

Вам может понадобиться KeyboardAvoidingView

Он может автоматически регулировать высоту, положение или нижнее заполнение в зависимости от высоты клавиатуры.

const keyboardVerticalOffset = Platform.OS === 'ios' ? 40 : 0  //update 2 something like this
...
 <KeyboardAvoidingView
  behavior='position'                                          //update 2
  keyboardVerticalOffset={keyboardVerticalOffset}              //update 2
  style={styles.container}
>
  <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
    <View style={styles.inner}>
      <Text style={styles.header}>Header</Text>
      <TextInput placeholder="Username" style={styles.textInput} />
      <View style={styles.btnContainer}>
        <Button title="Submit" onPress={() => null} />
      </View>
    </View>
  </TouchableWithoutFeedback>
</KeyboardAvoidingView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...