Измените стили просмотра перед отображением клавиатуры. - PullRequest
0 голосов
/ 04 августа 2020

Я хочу установить flex: 0, когда клавиатура открыта, и flex: 1, когда клавиатура скрыта. Чтобы избежать пробелов при открытой клавиатуре.

Но знайте, что макет мерцает при открытии клавиатуры.

keyboardWillShow доступно только на ios.

Как мне добиться это?

Вот что происходит:

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

Это код:

useEffect(() => {
  Keyboard.addListener("keyboardDidShow", _keyboardDidShow);
  Keyboard.addListener("keyboardDidHide", _keyboardDidHide);

  return () => {
    Keyboard.removeListener("keyboardDidShow", _keyboardDidShow);
    Keyboard.removeListener("keyboardDidHide", _keyboardDidHide);
  };
}, []);
const _keyboardDidShow = () => {
  setKeyboardIsOpen(true);
};
const _keyboardDidHide = () => {
  setKeyboardIsOpen(false);
};
return
<ScreenContainer bgColor={Colors.whiteFFF} scrollView>
  <View style={{ flex: 1, justifyContent: "space-between" }}>
    <View style={{ flex: 1, justifyContent: "center" }}>
      <TForm
        fields={fields}
        values={values}
        errors={errors}
        onChangeText={(val, name) => setValues({ ...values, [name]: val })}
        onError={errors => setErrors(errors)}
      />
      <ForgetPassword />
    </View>
    <View style={{ flex: keyboardIsOpen ? 0 : 1, justifyContent: "center" }}>
      <AuthButton text={Strings.btns.login} onPress={login} />
    </View>
  </View>
</ScreenContainer>

Я пробовал использовать прослушиватель событий клавиатуры, но установить justifyContent - flex-end, но это мерцает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...