android - AdjustPan Android 的行为不像我预期的那样
问题描述
根据我对 AdjustResize 和 Adjust pan 之间区别的理解,AdjustResize 会改变所有组件的高度,以便它们可以适应并挤进“半屏”,而 AdjustPan 会,只有在下面的视图的情况下键盘获得焦点,调出这个特定的视图,以便尽管有键盘也可以访问它。
但是,就我而言,我有一个评论部分,它是一个 React Navigation 视图。在这个视图中,我在它下面有一个 TextInput,当键盘打开以写评论时,它必须上升。但是当这个 TextInput 上升时,它会带走所有东西,包括堆栈中前一个视图的元素。
图片来自评论区(键盘上方灰色为文本输入)
如果我返回,则来自堆栈中上一个视图的图片(仅在发送键盘 didblur 事件然后一切恢复正常)
为什么adjustPan 看起来有点像AdjustResize?我已经尝试设置 AdjustNothing,但不幸的是它无法工作,因为我不再收到键盘事件。
解决方案
我终于弄清楚问题出在哪里了。
我
<SafeAreaInsetContext>
从react-native-safe-area-context
库中使用,因为我需要对 iPhoneX 或 iPhone 11 等设备的 insets 底部进行特殊管理。事实上,当 Android 键盘打开时,insetBottom 也被重新定义为采用键盘大小。所以我的屏幕底部有一个填充物,它一打开就和我的键盘一样大。所以行为是正常的,经过更正后,我的 AdjustPan 行为完全正常!
推荐阅读
- python - 突出显示某些条形图标签
- python - PermissionError pip install
- html - 当图像不在居中容器中时,如何将元素从其容器中拉出到浏览器的左侧或右侧边缘
- html - 具有超过 1 个表单的母版页?
- xaml - How use the styles merged?
- c - 我想给交流信号一个 270 度的相移
- metadata - Azure ADF - 获取元数据活动中的 ContentMD5 字段始终为空
- r - 将降雨量计算为雨天
- node.js - 无法确定 knex.js 和 Postgres 中参数 $1 的数据类型
- postgresql - 将 CSV 复制到 POSTGRES TEXTX 字段被引用