В React Native, как я могу получить ScrollView и inputAccessoryView, чтобы избежать клавиатуры?

#react-native #react-native-ios #react-native-scrollview

#react-native #react-native-ios #react-native-scrollview

Вопрос:

Я пытаюсь создать iMessage, подобный sticky text input, где содержимое ScrollView перемещается вверх, когда отображается клавиатура, и вниз, когда клавиатура перетаскивается, закрывается. В репозитории React Native на Github есть пример InputAccessoryViewExample.js это почти именно то, что я хочу, за исключением того, что когда отображается клавиатура, содержимое ScrollView (сообщения) закрывается клавиатурой.

Я попробовал несколько следующих перестановок, но безуспешно.

       <>
        <KeyboardAvoidingView style={{flex: 1}} behavior="padding">
          <ScrollView style={{flex: 1}} keyboardDismissMode="interactive">
            {Array(15)
              .fill()
              .map((_, i) => <Message key={i} />)}
          </ScrollView>
        </KeyboardAvoidingView>
        <InputAccessoryView backgroundColor="#fffffff7">
          <TextInputBar />
        </InputAccessoryView>
      </>
  

Комментарии:

1. KeyboardAvoidingView, как известно, неудобен. Возможно, было бы проще просто создать свою собственную реализацию

2. Можете ли вы попробовать добавить android: windowSoftInputMode =»adjustPan» к вашему тегу activity в androidManifest.xml ? (вам нужно перестроить свое приложение, а не только js)

3. Я использовал react-native-вид прокрутки с поддержкой клавиатуры , надеюсь, вам это тоже поможет

4. @Kai Я попробовал свою собственную реализацию, которая работает для других случаев, но она использует ту же идею, что и KeyboardAvoidingView (я просто добавляю несколько прослушивателей клавиатуры и настраиваю заполнение внизу).

5. @Kornflexx Извините, я должен был упомянуть, что я делаю это только для ios.