Skip to content

fix: 竖屏全屏弹幕与播控组件统一避让摄像头挖孔 - #164

Merged
Wazjn merged 1 commit into
ohosfrom
fix/danmaku-top-inset-unified
Aug 13, 2026
Merged

Wazjn merged 1 commit into
ohosfrom
fix/danmaku-top-inset-unified

Conversation

@Wazjn

@Wazjn Wazjn commented Aug 13, 2026

Copy link
Copy Markdown

问题

竖屏全屏播放时,顶部播控组件和弹幕会被摄像头挖孔/状态栏遮挡

改动内容

  • fullscreen.dart:新增 portraitFullscreenTopInset(),统一判断“全屏 + 竖屏 + 未移除安全边距 + topInset>0”,播控顶部组件与弹幕共用,保证两处行为一致。
  • 新增 TopInsetPadding 组件:inset 为 null 或 ≤0 时原样返回 child,否则按 top 加 padding。
  • view.dart / app_bar_ani.dart:顶部控件与弹幕都改用 TopInsetPadding 做避让。
  • pages/danmaku/view.dart:弹幕可视高度同步减去 inset,弹幕轨道按缩小后的区域正确排布。
  • pages/video/view.dart:把进全屏前捕获的 _fixedTopInset 传给播放器与弹幕。

生效范围

仅竖屏全屏生效;横屏全屏、非全屏、开启“移除安全边距”时均不避让。

- 新增公共判断 portraitFullscreenTopInset(全屏+竖屏+未移除安全边距时返回进全屏前捕获的状态栏/挖孔高度)
- 播控顶部组件与弹幕共用同一 topInset 和同一条件,分别以 Padding 避让
- 弹幕可视尺寸同步减去避让高度,轨道按缩小后的区域正确排布
- 横屏全屏、非全屏及开启移除安全边距时不受影响
@Wazjn
Wazjn merged commit 4b07755 into ohos Aug 13, 2026
1 check 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