# InputBox **Repository Path**: firefix-m/input-box ## Basic Information - **Project Name**: InputBox - **Description**: 安卓高级聊天输入组件 (ChatInputView) 使用说明文档 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-20 - **Last Updated**: 2025-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Android Advanced Chat Input Component (安卓高级聊天输入组件) 这是一个高度封装、可复用的安卓自定义组件 ChatInputView,旨在提供一个功能完整、体验流畅、类似主流 IM 应用(如微信)的聊天输入解决方案。 (建议您将组件的运行效果截图或录制成 GIF,并替换上面的链接以获得最佳展示效果) ✨ 功能特性 (Features) 多模式输入: 支持文本、语音、表情和“更多”功能面板之间的无缝切换。 智能键盘适配: 自动监听并适应键盘的弹出与收起,确保输入框始终可见。 动态计算键盘高度,使得自定义面板与键盘等高,切换时无 UI 跳动。 完美解决了从面板切换到键盘时,布局被整体顶上去的常见 UI Bug。 富文本表情支持: ![描述文字](./Screenshot_20251031_202425.png) ![描述文字](./Screenshot_20251031_202351.png) # 支持从 assets 动态解析表情配置文件 (emoji.xml)。 # 在 EditText 中直接将表情文本标签(如[可爱])渲染为对应的表情图片。 # 提供了独立的 EmojiDisplayUtils 工具类,可轻松在任何 TextView 中渲染表情富文本。 # 高度可扩展: # “更多”功能面板采用 RecyclerView,可轻松自定义功能项。 # 表情面板同样采用 RecyclerView,支持滑动浏览大量表情。 # 高复用性: 已封装为独立的 View 组件,可在任何布局文件中直接引用。 # 简洁的接口: 通过回调接口 OnInputListener 与外部 Activity/Fragment 通信,逻辑清晰,易于集成。 # 📁 项目结构 (Project Structure) # 该组件由以下几个核心部分组成,您可以将它们轻松地移植到您的项目中。 # 组件核心: # ChatInputView.java: 自定义组件的主逻辑类。 # res/layout/view_chat_input.xml: 组件的内部布局文件。 # 数据模型: # MessageItem.java: 消息列表的数据模型。 # MoreOptionItem.java: “更多”面板功能项的数据模型。 # EmojiItem.java: 单个表情的数据模型。 # 适配器: # MessageAdapter.java: 聊天消息列表的 Adapter。 # MoreOptionsAdapter.java: “更多”面板的 Adapter。 # EmojiAdapter.java: 表情面板的 Adapter。 # 工具类: # EmojiManager.java: 负责解析和管理表情数据。 # EmojiDisplayUtils.java: 核心工具类,用于在 TextView 中显示表情。 # 资源文件: # Layouts: 各个列表项和消息气泡的布局文件。 # Drawables: 组件所需的各类矢量图标和背景样式。 # Assets: emoji.xml 配置文件和所有 .png 表情图片。 # 🚀 如何集成 (How to Integrate) # 步骤 1: 拷贝文件 # 将上述“项目结构”中列出的所有 Java 类、XML 布局、Drawable 文件和 Assets 资源完整地拷贝到您项目的对应位置。 # 步骤 2: 配置 AndroidManifest.xml # 为确保组件能正确响应键盘高度变化,请务必为您所在的 Activity 添加 android:windowSoftInputMode="adjustResize"。 # code # Xml #