React Native:键盘弹出时如何正确调整输入框位置(iOS & Android 实战)
React Native:键盘弹出时如何正确调整输入框位置(iOS & Android 实战) 在开发聊天类应用(Chat UI)时,一个非常常见、但又容易踩坑的问题是: 当键盘弹出时,输入框被遮挡,或者整体布局错乱。 本文将结合一个真实的 React Native 聊天界面示例,详细说明: 如何在键盘弹出时自动上移输入框 为什么 KeyboardAvoidingView 是首选方案 iOS 和 Android 需要注意的差异和额外配置 一、核心思路:使用 KeyboardAvoidingView 在 React Native 中,官方推荐用于处理键盘遮挡问题的组件是: KeyboardAvoidingView 在本项目中,整个聊天页面被包裹在 KeyboardAvoidingView 中: <KeyboardAvoidingView style={styles.root} behavior="padding" keyboardVerticalOffset={Platform.OS === 'ios' ? 90 : 80} > {/* Chat content */} </KeyboardAvoidingView> 这样做的好处是: 键盘弹出时,系统自动为内容腾出空间 输入框始终可见,不会被遮挡 无需手动监听 keyboard show / hide 事件 二、behavior 属性如何选择? KeyboardAvoidingView 的 behavior 决定了布局如何响应键盘: padding (推荐):通过增加底部 padding 上移内容 height :减少视图高度(Android 上偶尔会闪动) position :通过 position 调整(不稳定,较少使用) 在聊天类 UI 中, padding 是最稳定、体验最好的选择 。 三、keyboardVerticalOffset:为什么必须设置? 如果你的页面顶部有: 导航栏(Navigation Header) 自定义 Header S...