Skip to content

2.2.0 Dev 7:修复选中胶囊位置偏高

Pre-release
Pre-release

Choose a tag to compare

@ytdttj ytdttj released this 03 Oct 02:59
· 22 commits to main since this release

修复:胶囊没盖住按钮文字

真机截图显示胶囊盖住了图标,但底部的标签文字露在胶囊外面。

原因:垂直方向坐标错位

底栏外壳带 padding(vertical = 6dp),所以按钮内容区是 56 − 12 = 44dp,起点在 y = 6dp。
而选中指示器是独立图层,坐标原点在外壳的 y = 0——它不知道外壳有 padding。

上一版给指示器的高度是 56 − 2×5 = 46dp:

  • 高度 46dp 超过内容区的 44dp
  • 位置比内容区高了 6dp

两个叠加,底部约 8dp 的文字就露在了胶囊外。

修法

让指示器与 item 槽位共用同一套内缩,不再各自算坐标:

  • 指示器垂直内缩直接引用外壳的 GlassBarItemPaddingV(消除两个值分叉的可能)
  • 指示器高度改为 56 − 2×6 = 44dp,正好等于外壳内容区高度
  • 显式补上 padding(top = 6dp),与外壳顶部对齐

这样静止态与按钮槽位逐像素重合——完整覆盖。按下时 1.28 → 1.36,44dp 胀到 60dp,比外壳 56dp 高 4dp,以中心放大后上下各溢出 2dp,即"点击后超出底栏上下一点点"。

顺带把 padding 移到 graphicsLayer 之后,避免 padding 区域被玻璃采样进去多采一段空白。


安装:下载 APK 覆盖安装(同签名)。