Skip to content

fix(tv): 启动时自动适配全局缩放并使用不透明上下栏 - #951

Merged
MCDFsteve merged 6 commits into
mainfrom
codex/tv-library-header-height
Sep 27, 2026
Merged

MCDFsteve merged 6 commits into
mainfrom
codex/tv-library-header-height

Conversation

@MCDFsteve

@MCDFsteve MCDFsteve commented Sep 26, 2026 •

Copy link
Copy Markdown
Collaborator

Android TV 在 1920×1080 输出、320 dpi 系统密度下,Flutter 的布局空间只有约 960×540;原 TV 默认缩放 1.2 会进一步放大整套界面。本次让 Android TV 在启动时依据实际输出尺寸和逻辑密度自动选择比例,这类电视会采用 0.5。1080p 以下补偿系统密度,4K 等更高输出保持与 1080p 接近的内容密度,结果限制在 0.5~1.3 并按 0.05 对齐;无效显示参数回退至 1.0。这里使用逻辑密度,不依赖不可靠的物理 PPI。

「设置 → 外观」新增「自动适配界面大小」。没有手动缩放记录的 Android TV 默认启用,每次启动重新计算;已有手动值继续保留。拖动滑块切换为手动模式,重新打开开关即可恢复自动。其他平台保留原默认值。全局缩放现支持 0.5~1.3,缩小时扩大逻辑布局空间,保证页面铺满屏幕并保留屏幕边缘点击区域;媒体库使用原有布局,不再单独限制顶部高度或缩放工具栏。

TV 顶部状态栏、底部菜单栏使用完全不透明的主题底色,并继续跳过背景模糊。保留滑入/滑出动画,移除 TV 透明度动画层。缩放触发布局更新时,音效状态同步延后至当前帧结束,避免构建期间触发 Provider 通知。

Android 调试版使用独立包名 com.aimessoft.nipaplay.debug 和「NipaPlay 调试版」名称,可与正式版并行安装。Rust 构建遵循显式 target-platform,真机调试不再额外编译 x86 模拟器架构。

验证:

  • 自动缩放及相关回归共 17 项 Flutter 测试通过,覆盖 720p、1080p、4K、异常显示参数、升级后保留手动设置、自动/手动切换及重启后的重新计算;同时覆盖缩放后布局、屏幕边缘点击与设置遥控器交互。
  • 此前 29 项布局、浮层定位、媒体库、外观控件及遥控器相关测试通过。
  • 本次 4 个改动文件静态检查无问题,git diff --check 通过。
  • flutter build apk --debug --target-platform android-arm --no-pub 构建成功。
  • Android 9 / 32 位 ARM 真机验证:已有 0.5 手动值保留;启用自动后手动改到 0.6,自动模式关闭;重新启用后恢复 0.5,冷启动仍保持自动计算的 0.5。检查了深浅主题的设置界面。
  • 调试版已并行安装到电视,保留正式版及现有数据;修改已同步到原工作目录,保留其他本地改动。

实机已知现象:移除透明度层后菜单栏显示改善,但切换至媒体库后仍偶见顶部时钟字符缺失,尚未完全定位。当前不将这一绘制问题标记为已修复。

@MCDFsteve
MCDFsteve requested a review from a team as a code owner September 26, 2026 19:13
@MCDFsteve MCDFsteve changed the title fix(tv): 媒体库顶部区域最多占用三分之一高度并自动缩放 fix(tv): 限制媒体库顶部高度并支持安卓调试版并行安装 Sep 26, 2026
@MCDFsteve MCDFsteve changed the title fix(tv): 限制媒体库顶部高度并支持安卓调试版并行安装 fix(tv): 限制媒体库顶部高度、使用不透明栏并支持调试版并行安装 Sep 26, 2026
@MCDFsteve MCDFsteve changed the title fix(tv): 限制媒体库顶部高度、使用不透明栏并支持调试版并行安装 fix(tv): 扩展全局界面缩放至 0.5 并使用不透明上下栏 Sep 26, 2026
@MCDFsteve MCDFsteve changed the title fix(tv): 扩展全局界面缩放至 0.5 并使用不透明上下栏 fix(tv): 启动时自动适配全局缩放并使用不透明上下栏 Sep 26, 2026
@MCDFsteve
MCDFsteve merged commit f03b340 into main Sep 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant