SettingItemRegistry class

设置项注册表,统一管理设置项元数据定义与运行时绑定逻辑

单一入口管理元数据(SettingItemDefinition)、运行时构建工厂、 可见性工厂和独立面板动作,提供按场景/方向/隐藏元素过滤查询的能力。

Unified setting item registry that manages metadata definitions, runtime build factories, visibility factories, and panel actions.

Provides lazy-initialized default registrations, custom extension registration, and query capabilities filtered by scene, orientation, and hidden elements.

Properties

hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

build(SettingItemDefinition def, AliPlayerWidgetController controller, List<ChangeNotifier> disposeBag) → SettingItem
根据定义构建运行时 SettingItem
getPanelAction(String elementKey) → PanelActionFn?
获取指定 elementKey 的独立面板动作
hasVisibility(String elementKey) → bool
检查指定 elementKey 是否注册了动态可见性工厂
query({required SceneType sceneType, Set<String>? hiddenElements, Orientation? orientation}) → List<SettingItemDefinition>
按条件查询设置项定义列表
queryGrouped({required SceneType sceneType, Set<String>? hiddenElements}) → Map<SettingItemGroup, List<SettingItemDefinition>>
按分组查询竖屏设置面板的设置项定义
resetForTesting() → void
重置所有注册(仅用于测试)
resolveVisibility(SettingItemDefinition def, AliPlayerWidgetController controller, List<ChangeNotifier> disposeBag) → ValueListenable<bool>?
解析定义的动态可见性条件
wrapNotifier<T>(ValueListenable<T> source, List<ChangeNotifier> disposeBag) → ValueNotifier<T>
将源 ValueListenable<T> 包装为独立的 ValueNotifier<T>, 并注册同步监听器,同时将包装后的 notifier 加入 disposeBag