github urbanescavenger/BiliMT v3.1.0-alpha.11

pre-release2 hours ago

UP 页连续下翻时焦点不再突然跳回顶部 —— 上一版引入的「网格焦点记忆」在分页合并时反复抢焦的收尾修复。

变更

  • 修「B站 UP 页连续下翻,焦点会突然上跳」(P11-204)。真机日志(logs_live_20261006_182944,3.1.0-alpha.10,BRAVIA AE2)里症状有很干净的签名:一次访问中成对出现、间隔 140~190ms 的两行
    grid-memory restore start: id=grid:space target=4 videos=30 → success(入场恢复,正确)
    与 grid-memory restore start: … videos=60/90/120/…(每翻一页都重来一次,而此刻用户已经在第 115 张卡上,target 却恒为入场那第 4 张)。
    • 缺陷一:恢复 effect 以「视频条数」为 key,而恢复目标取自组合期记住的固定值(永远指向入场卡)⇒ 之后每次分页合并都会再跑一遍恢复,把列表往入场卡拽。
    • 缺陷二:真正的让位判据排在滚动之后 ⇒ 那 140~190ms 里列表已经被滚到目标行(第 4 张在第 1 行,视口直接跳到顶部),后面的 abort 只挡住了请求焦点,没挡住那次滚动。而键盘输入标记一旦置位就再不回退,于是入场恢复之后的每次滚动都必然命中这条废路径。
    • 修法:把让位判据提到滚动之前(新增日志 grid-memory restore|relay abort(before-scroll));主路径再加两道闸——本组合一旦有用户按键就不再碰列表、焦点确实落到目标卡才置「已恢复」标记(数据未就绪的 skip 不置闸,保留「数据到了再补一次」的原意)。
    • 本次只动 TV 网格的这两处,其它焦点路径、滚动与分页逻辑一律未变。

已知

  • 本条待真机验收:UP 页连续下翻时不应再出现 grid-memory restore start … videos=N(N>30)这种分页触发的重复恢复,也不应出现「焦点突然上跳」;若用户自己按键后仍见恢复日志,则判据没挡住,需要再看早退点。
  • 同源隐患(本轮刻意未改):管线 effect 同样以「视频条数」为 key、同样无条件滚动,只是 UP 页的恢复 index 会跟着当前卡实时解析、暂未复现;改动它会牵动网格主路径,留待真机证据再动。
  • alpha.5~alpha.10 里记的已知项(编码分组/缓冲地板/顶档闸/档位基准待复测;频道页 4K 角标续翻、4K 整场重载修复待复测;转发、专栏动态不渲染、话题/@ 不可点等)仍未变。

Don't miss a new BiliMT release

NewReleases is sending notifications on new releases.