import 'package:flutter/material.dart'; class SmartRefreshIndicator extends StatelessWidget { final Future Function() onRefresh; final Widget child; const SmartRefreshIndicator({ super.key, required this.onRefresh, required this.child, }); @override Widget build(context) { return LayoutBuilder( builder: (context, constraints) => RefreshIndicator( onRefresh: onRefresh, child: SingleChildScrollView( physics: const AlwaysScrollableScrollPhysics(), child: ConstrainedBox( constraints: BoxConstraints(minHeight: constraints.maxHeight), child: child, ), ), ), ); } }