# 移动输入栏布局

[English](MOBILE_COMPOSER_TOOLBAR.en.md) · [第三方插件适配](../README.md#第三方插件适配)

> 0.6.3 的布局调整。Android App 与手机浏览器共用插件提供的页面，不需要为此重装 App。

窄屏输入栏保留 DSH 原生结构和事件处理。模型名称在空间不足时截断，附加控件正常换行，发送／停止保持触摸尺寸，整组放不下时按实际宽度换行。插件开关不会被拉成操作按钮；内联弹窗、菜单和列表不会套用工具栏的紧凑尺寸。

## 与 PR 原稿的区别

原稿提出把所有插件合入一个上层横向滚动条，并把原生操作固定在下层。当前 DSH 没有公开父级 `conversation.input.toolbar` 入口，左右插件属于不同 React 父节点；核心宽度观察器还要测量这两个父组。因此本版不提供共同滚动上栏，也不搬动 DOM、复制原生回调或用 `display:contents` 绕过核心布局。

本版采用现有公共插槽能实现的紧凑与溢出修正，保留原稿作者提交并追加维护者调整。若上游以后提供父级工具栏能力，可再评估统一滚动方案，不预先登记一个不会渲染的控件。

## 附加控件的紧凑边界

布局层保留原生父组，只调整换行、间距和可达性，不通过猜测第三方类名隐藏标签、错误状态或任务恢复入口。控件的图标、额度摘要和紧凑偏好由提供控件的插件负责；没有公开紧凑接口时保留其现有呈现，不新增一个无效设置。视觉较小的图标也需要可达的触摸目标。

公共插槽测试另覆盖自动继续开关、Fast 图标、两行额度摘要及已有任务恢复入口的紧凑形态。它们是无服务行为的展示夹具，不代表特定社区插件的实际接口、任务操作或配额请求已通过验证。

小屏下，公共 left/right 插槽中直接包含普通按钮的 span/div 包装层会为 44px 点击区域保留尺寸，避免按钮越过原先 30px 包装层而挤到相邻控件。此规则不按第三方类名识别控件；不匹配纯 switch、弹窗包装或只在更深层含按钮的包装，且不在宽屏生效。

## 验证范围

真实 DSH 输入栏与通过公共 left／right／activity 插槽注册的测试扩展共同运行，检查小屏、横屏、较大字号、明暗主题、模型紧凑状态、弹窗、开关以及发送／停止可达性。编辑器、草稿和活跃 activity 的节点保持，不因此重载页面。

activity 夹具只验证插槽和挂载连续性，不代表真实麦克风或语音识别。任意社区插件组合仍可能有自己的布局问题；可使用[移动页面模块](CLIENT_MODULES.md)关闭不需要的可选模块。
