You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用React Native自定义带顶部工具栏的键盘,有可实现的相关库吗?

你要实现的带顶部自定义工具栏的自定义键盘参考样式如下:
自定义键盘参考样式

实现方案

根据你的需求可以分为两种实现路径:

仅需在系统键盘顶部加工具栏

如果不需要修改原生键盘的按键布局,只需要新增顶部操作栏,可以直接用React Native官方提供的能力实现:

  • iOS端支持InputAccessoryView原生组件,给TextInput绑定对应ID即可让自定义工具栏自动吸附在键盘顶部
  • Android端可以通过Keyboard模块监听键盘弹出、收起事件,动态调整自定义工具栏的位置,配合KeyboardAvoidingView处理页面布局避让
  • 示例代码:
import { InputAccessoryView, TextInput, View, Text, TouchableOpacity } from 'react-native';

// 自定义工具栏
const KeyboardToolbar = () => {
  return (
    <View style={{
      height: 44,
      backgroundColor: '#f0f0f0',
      flexDirection: 'row',
      alignItems: 'center',
      paddingHorizontal: 12,
      justifyContent: 'space-between'
    }}>
      <TouchableOpacity>
        <Text>取消</Text>
      </TouchableOpacity>
      <View style={{flexDirection: 'row', gap: 20}}>
        <TouchableOpacity><Text>清空</Text></TouchableOpacity>
        <TouchableOpacity><Text>确认</Text></TouchableOpacity>
      </View>
    </View>
  )
}

// 业务页面使用
const InputPage = () => {
  return (
    <View style={{padding: 20}}>
      <TextInput
        style={{borderWidth: 1, borderColor: '#ccc', padding: 10, borderRadius: 4}}
        inputAccessoryViewID="customToolbar"
      />
      <InputAccessoryView nativeID="customToolbar">
        <KeyboardToolbar />
      </InputAccessoryView>
    </View>
  )
}

需要完全自定义整个键盘样式(和参考图一致)

如果需要修改键盘的按键布局、样式,完全替换原生键盘,需要自定义整个键盘组件:

  • 自行实现所有按键的布局和交互逻辑,包括数字输入、删除、切换符号、确认等操作
  • 监听输入框的聚焦状态,控制自定义键盘的显示和隐藏,同时禁用系统键盘的弹出
  • 适配不同屏幕尺寸的键盘高度,避免布局溢出

可用第三方库

以下是成熟的开源库,可以减少开发成本:

  • react-native-custom-keyboard:支持双端完全自定义键盘布局,内置顶部工具栏扩展能力,可自由配置所有按键的样式和交互,适合需要整体自定义键盘的场景
  • react-native-keyboard-accessory:专门用于给系统键盘添加顶部工具栏的轻量库,双端适配,接入成本低,无需修改原有输入逻辑
  • react-native-keyboard-manager:统一处理键盘避让逻辑,搭配自定义工具栏使用时可以避免布局错乱问题

内容的提问来源于stack exchange,提问作者陈富文

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:51:03