核心代碼 在 SingleChildScrollView 外面包裹一個 Container 并設(shè)置 maxHeight
class CacheSelAlertView extends StatefulWidget {
const CacheSelAlertView({Key? key}) : super(key: key);
@override
_CacheSelAlertViewState createState() => _CacheSelAlertViewState();
}
class _CacheSelAlertViewState extends State<CacheSelAlertView> {
@override
Widget build(BuildContext context) {
return Container(
decoration: const BoxDecoration(
color: SCColors.color_F2F3F5,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(12.0),
topRight: Radius.circular(12.0))),
child: SafeArea(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
titleItem(context),
Container(
constraints: BoxConstraints(
maxHeight: SCUtils().getScreenHeight() - 260,
minHeight: 282
),
child: SingleChildScrollView(
child: Container(
margin: EdgeInsets.all(12),
child: ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: itemBuilder,
separatorBuilder: separatorBuilder,
itemCount: 2),),
),
)
],
),
),
);
}
Widget itemBuilder(BuildContext context, int index){
return Container(
height: 48,
decoration: BoxDecoration(
color: Colors.white
),
child: Row(
children: [
Image.asset(SCAsset.iconCacheDel,width: 22,),
Text('ddd',style: TextStyle(fontSize: 16),maxLines: 2,)
],
),
);
}
Widget separatorBuilder (BuildContext context ,int index){
return const Padding(padding: EdgeInsets.only(left: 16,right: 16),child: Divider(height: 1,),);
}
Widget titleItem(BuildContext context) {
return SCAlertHeaderView(
title: '已選',
closeTap: () {
Navigator.of(context).pop();
},
);
}
}