Widget build()

in example/lib/pages/settings/settings_page.dart [28:135]


  Widget build(BuildContext context) {
    // 数据结构定义
    final List<SettingItem> items = [
      SectionHeader(title: "通用"),
      ButtonItem(
        title: "链接设置",
        onPressed: () {
          NavigateUtil.pushWithRoute(context, PageRoutes.link);
        },
      ),
      ButtonItem(
        title: "清除缓存",
        onPressed: () {
          AliPlayerWidgetController.clearCaches();
          ScaffoldMessenger.of(context).showSnackBar(
            const SnackBar(
              content: Text("清除缓存成功"),
              backgroundColor: Colors.green,
              duration: Duration(seconds: 2),
            ),
          );
        },
      ),
      SectionHeader(title: "配置"),
      SelectionItem<ShortVideoResource>(
        title: "短视频资源",
        optionsLoader: _fetchVideoResources,
        selectedOptionLoader: (options) async {
          return _fetchSelectedVideoResource(options);
        },
        onSelected: (resource) {
          SPManager.instance.saveString(
            DemoConstants.keyDramaInfoListUrl,
            resource.url,
          );
        },
        displayFormatter: (resource) => resource.title,
      ),
      SectionHeader(title: "调试"),
      ButtonItem(
        title: "调试页面",
        onPressed: () {
          NavigateUtil.pushWithRoute(context, PageRoutes.debug);
        },
      ),
      SectionHeader(title: "其它"),
      TextItem(
        title: "设备 UUID",
        subtitleLoader: () async {
          final version = await FlutterAliplayer.getDeviceUUID();
          return version;
        },
      ),
      TextItem(
        title: "SDK 版本号",
        subtitleLoader: () async {
          final sdkVersion = await FlutterAliplayer.getSDKVersion();
          return sdkVersion;
        },
      ),
      TextItem(
        title: "Widget 版本号",
        subtitleLoader: () async {
          final version = AliPlayerWidgetController.getWidgetVersion();
          return version;
        },
      ),
      TextItem(
        title: "Dart 版本号",
        subtitleLoader: () async {
          return Platform.version;
        },
      ),
    ];

    return Scaffold(
      appBar: AppBar(
        title: const Text("Settings"),
        backgroundColor: Colors.orangeAccent,
      ),
      body: ListView.builder(
        itemCount: items.length,
        itemBuilder: (context, index) {
          final item = items[index];
          if (item is SectionHeader) {
            return _buildSectionHeader(item);
          }

          final Widget itemView;
          if (item is SwitchItem) {
            itemView = _buildSwitchItem(item);
          } else if (item is SelectionItem) {
            itemView = _buildSelectionItem(item);
          } else if (item is ButtonItem) {
            itemView = _buildButtonItem(item);
          } else if (item is TextItem) {
            itemView = _buildTextItem(item);
          } else {
            return const SizedBox.shrink();
          }
          return Container(
            color: Colors.white,
            child: itemView,
          );
        },
      ),
    );
  }