Repository navigation
PAM Native 1.28.0
·
17 commits
to main
since this release
KeyboardAvoidingViewworks insideModalandBottomSheetsurfaces.
On Android a modal is its ownDialogwindow: the activity window never
receives that window's IME, so a modal's KAV read a zero inset (and
mounting one replaced the screen KAV's window-inset listeners, which its
unmount then cleared). A KAV inside a modal now follows the IME of the
modal's own window, frame by frame throughWindowInsetsAnimation, and no
longer touches the activity window's listeners.- Engine: per-surface keyboard insets
(Engine::set_surface_keyboard_inset,
pam_native_engine_set_surface_keyboard_inset). Theresize(RN
height) andpaddingbehaviors of a KAV inside a modal are laid out by
the engine above that modal's keyboard (RNrelativeKeyboardHeight,
includingkeyboardVerticalOffset): the content box shrinks, so flexible
and absolutely positioned descendants (a bottom palette) move above the
keyboard. The root keyboard inset still never reaches a modal, and a
modal's keyboard never moves the screen below it. - Android:
panKAVs inside a modal translate natively against the dialog
window's IME; an interactiveBottomSheetkeeps lifting itself and its
KAVs only avoid what that lift leaves. - iOS: modals publish the keyboard overlap measured in their own coordinate
space; the engine lays outresize/padding/positionKAVs inside a
full-screen or dialog modal and the frames animate with the keyboard's
duration and curve. - Templates accept React Native's KAV behavior names:
height(=resize)
andposition(=pan).