Skip to content
On this page

移动规则

WARNING

此处以源代码为准!

1.寻找该 EPGItem 所在的 EPGGroup 下所有的同级 EPGItem | EPGGroup(称为 GroupChildren)(此时 EPGGroup 也可以当做一个 EPGItem 来计算。如果该元素没有 EPGGroup ,即顶层元素,则会以根节点为虚拟 EPGGroup 来寻找子元素)。

2.根据方向,寻找所有符合条件的 item ,将这些 item 分为 在非移动方向上与原焦点元素有重合 与 在移动方向与非移动方向上均与原焦点元素无重合 两类,其余 item 抛弃。

3.若 在非移动方向上与原焦点元素有重合 类中存在符合的元素,则在之中选择移动方向最近的元素作为移动对象。否则则使用 在移动方向与非移动方向上均与原焦点元素无重合 类中移动方向上与原焦点元素最近的元素作为移动对象。

4.若以上两类均无可用元素,则会寻找该元素的上级 EPGGroup 作为一个新的 item ,来寻找其上级 EPGGroup 中是否存在目标移动对象,以此类推。

5.若目标为 EPGItem ,则直接移动。若目标为 EPGGroup ,则移动到 Group 内部带有 default 标识的目标或第一个可用 item。

Released under the MIT License.