Skip to content

2.2.0 Dev 6:底栏指示器质感重做

Pre-release
Pre-release

Choose a tag to compare

@ytdttj ytdttj released this 03 Oct 02:49
· 23 commits to main since this release

按真机反馈重做指示器质感

对比 REAREye 原版效果,逐项修正了三处参数错误。

1. 指示器不再像白色奶块(最关键)

之前把静止态表面写成 30% 主色固定填充 + 固定高光/阴影,结果是一块不透明白罩,把底栏内容全盖住了。

REAREye 的真实做法:静止态只是 10% 黑/白淡罩,而且随按下淡出、把位置让给折射效果:

  • 静止:10% 淡罩,无折射、无描边、无投影 → 透明玻璃罩住内容
  • 按下:淡罩淡出,lens 折射 + 高光 + 投影 + 内阴影依次淡入

2. 胶囊盖满整个按钮,点击时变宽并溢出

  • 水平内缩 5dp → 2dp,胶囊覆盖满整个 tab 槽(之前盖不全)
  • 底栏高度 52dp → 56dp,垂直内缩独立为 5dp
  • 按下放大 1.12 → 1.28:静止 46dp → 按下 59dp,超出底栏上下约 1.5dp

3. 滑动不再一顿一顿

两个原因都修了:

  • 竞态:点一次 tab 会连走两条路径(手势结束的 release() 与 animateToValue 内的 release()),两个 release 抢同一动画通道,先到的会在滑移途中就把胶囊缩回去。加了 press 世代守卫,新 press 会让旧 release 的回缩作废。
  • 弹簧太快:位置弹簧刚度 1000(约 200ms 到位),"按下变大"只有两三帧看不见。改为刚度 420、阻尼比 0.82,行程拉长到约 350ms 且尾段有轻微回弹,去掉了机械匀速的死板感。

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

如果还有偏差,最可能是这三个参数,请告诉我具体感受我继续调:

  • 按下放大倍数(现 1.28)
  • 滑动时长(现约 350ms,刚度 420)
  • 静止态淡罩浓度(现 10%)