Ответ 1
Я согласен, что отсутствие документации здесь расстраивает. Если вы покопаетесь в исходном коде KeyboardAvoidingView
, вы найдете переключатель вокруг behavior
: https://github.com/facebook/react-native/blob/92073d4a71d50a1ed80cf9cb063a6144fcc8cf19/Libraries/Components/Keyboard/KeyboardAvoidingView.js#L157
Похоже, что происходит следующее:
height
<View>
возвращается со стилем, который пытается установить статическую высоту для вида, который является либо высотой экрана, либо высотой экрана минус клавиатура при наличии клавиатуры.
position
Возвращается вложенный <View>
, где к внешнему представлению применяются ваши стили, а к внутреннему представлению применяется стиль bottom
, который пытается соответствовать высоте клавиатуры при наличии клавиатуры.
padding
Один <View>
возвращается, когда стиль paddingBottom
применяется к высоте клавиатуры, если клавиатура присутствует.
Учитывая произвольные доступные опции, похоже, что при использовании KeyboardAvoidingView
вы должны использовать метод проб и ошибок и проверить оба устройства на желаемый результат. Теоретически все три варианта должны работать, но, как утверждают в документации, между типами устройств есть определенный нюанс.
На мой взгляд, этот компонент следует отказаться, в пользу вспомогательных функций, которые будут возвращать высоту клавиатуры с течением времени, чтобы вы могли применять свои собственные идеи стиля непосредственно на основе видимости клавиатуры.