import 'dart:ffi'; import 'package:flutter/material.dart'; ///步骤内容卡片 class StepContentCard extends StatelessWidget { final List children; const StepContentCard({super.key, required this.children}); @override Widget build(BuildContext context) { return Container( padding: const EdgeInsets.all(15), decoration: BoxDecoration( color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(16), boxShadow: [ BoxShadow( color: Theme.of(context).colorScheme.shadow, blurRadius: 7, offset: const Offset(0, 4), ), ], ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: children, ), ); } } ///卡片标题 class CardTitle extends StatelessWidget { final String title; const CardTitle({super.key, required this.title}); @override Widget build(BuildContext context) { return Container( margin: const EdgeInsets.only(bottom: 15), child: Text( title, style: Theme.of(context).textTheme.titleSmall, ), ); } } ///配置列表 class OptionList extends StatelessWidget { final List options; final List selects; final double widthFactor; final Function(String) onTap; const OptionList({ super.key, required this.options, required this.selects, this.widthFactor = 0.5, required this.onTap, }); @override Widget build(BuildContext context) { return Wrap( runSpacing: 20, children: options.map((item) { return FractionallySizedBox( widthFactor: widthFactor, child: InkWell( onTap: () { onTap(item); }, child: Row( spacing: 5, mainAxisSize: MainAxisSize.min, children: [ SizedBox( width: 20, height: 20, child: Checkbox( value: selects.contains(item), onChanged: (_) { onTap(item); }, ), ), Text(item), ], ), ), ); }).toList(), ); } }