import 'package:flutter/cupertino.dart'; class CupertinoListTile extends StatelessWidget { final Widget? leading; final Widget? title; final Widget? subtitle; final Widget? trailing; final void Function()? onTap; const CupertinoListTile({ super.key, this.leading, this.title, this.subtitle, this.trailing, this.onTap, }); @override Widget build(BuildContext context) { return GestureDetector( onTap: onTap, behavior: HitTestBehavior.opaque, child: Row( mainAxisSize: MainAxisSize.max, children: [ if (leading != null) Padding( padding: const EdgeInsets.all(8.0), child: leading!, ), Expanded( child: Padding( padding: const EdgeInsets.all(8.0), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ if (title != null) title!, if (subtitle != null) CupertinoTheme( data: CupertinoTheme.of(context).copyWith( textTheme: CupertinoTextThemeData( textStyle: TextStyle( fontSize: CupertinoTheme.of(context).textTheme.textStyle.fontSize! - 2, ) ) ), child: subtitle!, ), ], ), ), ), if (trailing != null) Padding( padding: const EdgeInsets.all(8.0), child: trailing!, ), ], ), ); } }