import 'package:farmer_client/models/entities/Address.dart'; import 'package:farmer_client/pages/addressList/widget/AddressCard.dart'; import 'package:farmer_client/widgets/DefaultButton.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:fluttertoast/fluttertoast.dart'; class AddressList extends StatefulWidget { const AddressList({Key? key}) : super(key: key); @override _AddressList createState() => _AddressList(); } class _AddressList extends State { List
addressList = [ Address.fromJson({'address': '777', 'isDefault': false}), Address.fromJson({'address': '999', 'isDefault': false}), Address.fromJson({'address': '这是一个正经的地址', 'isDefault': false}), ]; void onChange(index) { setState(() { addressList.forEach((element) { if (element.isDefault == true) { element.isDefault = false; } }); addressList[index].isDefault = true; }); } void onDelete(index){ showDialog( context: context, builder: (context) { return AlertDialog( title: Text("提示信息"), content: Text("您确定要删除此地址吗?"), actions: [ TextButton( child: Text("取消"), onPressed: () { print("取消"); Navigator.pop(context, 'Cancle'); }, ), TextButton( child: Text("确定"), onPressed: () { // setState(() { // addressList.remove(addressList[e]); // }); Navigator.pop(context, "Ok"); Fluttertoast.showToast( msg: '删除成功!'); }) ]); }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( elevation: 0, centerTitle: true, backgroundColor: Colors.white, title: Text( '地址管理', style: TextStyle( color: Colors.black, fontSize: 17.sp, letterSpacing: 2, fontWeight: FontWeight.bold), ), ), body: ListView( children: [ Container( padding: EdgeInsets.all(15.w), child: Column( //左对齐 crossAxisAlignment: CrossAxisAlignment.start, children: [ Column( children: addressList .asMap() .keys .map( (e) => AddressCard( No: e + 1, item: addressList[e], onChange: () { onChange(e); }, onEdit: () {}, onDelete: () { onDelete(e); }, ), ) .toList()), DefaultButton( color: const Color(0xffffffff), backColor: const Color(0xFFFF703B), width: 345.w, height: 49.h, text: '+新增收货地址', onPressed: () {}, margin: const EdgeInsets.all(0), fontSize: 20.sp, radius: 24.5.w, ), ], ), ), ], ), ); } }