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'; import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; class AddressList extends StatefulWidget { const AddressList({Key? key}) : super(key: key); @override _AddressList createState() => _AddressList(); } class _AddressList extends State { bool isBack = false; @override void initState() { super.initState(); if (Get.arguments != null) { isBack = Get.arguments['isBack']; } } 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(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], isBack: isBack, onChange: () { onChange(e); }, onEdit: () { Get.toNamed('/addAddress', arguments: {'item': addressList[e]}); }, onDelete: () { onDelete(e); }, onBack: () { if(GetStorage().read('address')==null) { GetStorage().write('address', addressList[e]); }else { GetStorage().remove('address'); GetStorage().write('address', addressList[e]); } Get.back(); }, ), ) .toList()), DefaultButton( color: const Color(0xffffffff), backColor: const Color(0xFFFF703B), width: 345.w, height: 49.h, text: '+新增收货地址', onPressed: () { Get.toNamed('/addAddress'); }, margin: const EdgeInsets.all(0), fontSize: 20.sp, radius: 24.5.w, ), ], ), ), ], ), ); } }