首页 > 解决方案 > AdjustPan Android 的行为不像我预期的那样

问题描述

根据我对 AdjustResize 和 Adjust pan 之间区别的理解,AdjustResize 会改变所有组件的高度,以便它们可以适应并挤进“半屏”,而 AdjustPan 会,只有在下面的视图的情况下键盘获得焦点,调出这个特定的视图,以便尽管有键盘也可以访问它。

但是,就我而言,我有一个评论部分,它是一个 React Navigation 视图。在这个视图中,我在它下面有一个 TextInput,当键盘打开以写评论时,它必须上升。但是当这个 TextInput 上升时,它会带走所有东西,包括堆栈中前一个视图的元素。

图片来自评论区(键盘上方灰色为文本输入)

在此处输入图像描述

如果我返回,则来自堆栈中上一个视图的图片(仅在发送键盘 didblur 事件然后一切恢复正常)

在此处输入图像描述

为什么adjustPan 看起来有点像AdjustResize?我已经尝试设置 AdjustNothing,但不幸的是它无法工作,因为我不再收到键盘事件。

标签: androidreact-nativereact-native-android

解决方案


我终于弄清楚问题出在哪里了。

<SafeAreaInsetContext>react-native-safe-area-context库中使用,因为我需要对 iPhoneX 或 iPhone 11 等设备的 insets 底部进行特殊管理。事实上,当 Android 键盘打开时,insetBottom 也被重新定义为采用键盘大小。所以我的屏幕底部有一个填充物,它一打开就和我的键盘一样大。所以行为是正常的,经过更正后,我的 AdjustPan 行为完全正常!


推荐阅读