import 'package:flutter/material.dart'; import 'commonFun.dart'; import '../res/listContacts.dart'; import 'package:flutter/services.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'doJSON.dart'; import 'hyxx_data_handle.dart'; import 'dart:convert'; import '../pages/MyMsics/03_personal/ContactModify.dart'; import '../pages/MyMsics/03_personal/ContactAdd.dart'; //删除消息对话框。自定义透明背景窗口,类似对话框 class customDialogG extends StatefulWidget { customDialogG({Key key, this.title = "", this.index = -1}) : super(key: key); String title; int index; _CheckBoxDemoState createState() => _CheckBoxDemoState(); } class _CheckBoxDemoState extends State { String getTitle(int index) { // return listContacts2[index]["姓名"] + // ', ' + // listContacts2[index]["部门"] + // ', ' + // listContacts2[index]["职务"] + // '\n' + // listContacts2[index]["手机"] + // ', ' + // listContacts2[index]["邮箱"]; } @override void initState() { // TODO: implement initState super.initState(); bFlash = false; getContent(); } String strContent = ''; getContent() async { if (0 == widget.title.compareTo('收到的消息')) { strContent = "第 ${widget.index + 1} 条(共 ${listMessagesInbox2.length} 条)" + "\n" + "时间:" + listMessagesInbox2[widget.index]['date'] + ", " + listMessagesInbox2[widget.index]['time'] + "\n\n" + "内容:" + listMessagesInbox2[widget.index]['content']; } else if (0 == widget.title.compareTo('发送的消息')) { strContent = "第 ${widget.index + 1} 条(共 ${listMessagesOutbox2.length} 条)" + "\n" + "时间:" + listMessagesOutbox2[widget.index]['date'] + ", " + listMessagesOutbox2[widget.index]['time'] + "\n\n" + "内容:" + listMessagesOutbox2[widget.index]['content']; } setState(() {}); } bool flagSelect = false; bool flagInbox = false; bool flagOutbox = false; Widget getCheckBoxs() { return Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Row(children: [ SizedBox(width: 10), Checkbox( value: flagInbox || flagOutbox ? false : flagSelect, onChanged: flagInbox || flagOutbox ? null : (v) { setState(() { flagSelect = v; }); }, ), Text('删除当前选择的消息'), ]), Row(children: [ SizedBox(width: 10), Checkbox( value: flagInbox, onChanged: (v) { setState(() { flagInbox = v; }); }, ), Text('删除所有收到的消息'), ]), Row(children: [ SizedBox(width: 10), Checkbox( value: flagOutbox, onChanged: (v) { setState(() { flagOutbox = v; }); }, ), Text('删除所有发送的消息'), ]), ], ); } Widget getBtnSizeX({@required text, width = 60.0, height = 30.0, onPressedFun}) { return Container( color: Colors.white12, //onPressedFun为null时无效 width: width, height: height, child: RaisedButton( padding: EdgeInsets.all(0), textColor: Colors.black, child: Text(text), onPressed: onPressedFun, ), ); } Future alertDialog(String title, String content, var onPresse) async { return await showDialog( barrierDismissible: false, //表示点击灰色背景的时候是否消失弹出框 context: context, builder: (context) { return AlertDialog( title: Text(title), content: Text(content), actions: [ FlatButton( child: Text("确定"), onPressed: onPresse, ), FlatButton( child: Text("取消"), onPressed: () { Navigator.pop(context, false); }, ), ], ); }, ); } @override Widget build(BuildContext context) { SystemUiOverlayStyle(statusBarColor: Colors.transparent); Size mediaSize = MediaQuery.of(context).size; myController.text = getTitle(widget.index); // TODO: implement build return WillPopScope( child: Scaffold( //type: MaterialType.transparency, //color: Colors.transparent, //backgroundColor: Colors.transparent, //color: Colors.blue, backgroundColor: Color.fromRGBO(212, 212, 212, 0.6), body: SafeArea( child: Stack( children: [ Container( alignment: Alignment(0, -0.4), child: Container( height: mediaSize.height * 0.7, width: mediaSize.width * 0.95, decoration: BoxDecoration( color: Colors.white, //border: Border.all(width: 1.0, color: Colors.black), borderRadius: BorderRadius.all( Radius.circular(3), ), ), child: Column( children: [ Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 0), child: Stack( children: [ Align( alignment: Alignment.center, child: Text( "${widget.title}", style: TextStyle( fontSize: 15.0, ), ), ), Align( alignment: Alignment.centerRight, child: InkWell( child: Icon(Icons.close), onTap: () { //Navigator.pop(context, index); Navigator.pop(context); //关闭弹框,播放输入视频地址 }, ), ) ], ), ), Divider(), // Container( // padding: EdgeInsets.fromLTRB(20, 10, 20, 10), // width: double.infinity, // child: SingleChildScrollView( // child: Container( // child: Text(strContent), // ), // ), // ), Container( padding: EdgeInsets.fromLTRB(20, 10, 20, 10), width: double.infinity, child: Container( decoration: BoxDecoration( color: Colors.white, border: Border.all(width: 1.0, color: Colors.blue), borderRadius: BorderRadius.all( Radius.circular(3), ), ), padding: EdgeInsets.fromLTRB(20, 10, 20, 10), width: double.infinity, height: mediaSize.height * 0.2, child: SingleChildScrollView( child: Container( child: Text(strContent), ), ), ), ), SizedBox(height: 10), getCheckBoxs(), SizedBox(height: 10), Expanded( child: Container(), ), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ getBtnSizeX( text: "删除", onPressedFun: () async { // listContacts2.removeAt(widget.index); // bFlash = true; // print("ContactDel bFlash = $bFlash"); // writeJSON(json.encode(listContacts2), 'listContacts2.json'); bool ret = await alertDialog('删除确认', '是否确定要删除选中的项目?', () { print("flagInbox = $flagInbox"); print("flagOutbox = $flagOutbox"); print("flagSelect = $flagSelect"); if (flagInbox || flagOutbox) { bFlash = true; if (flagInbox) { listMessagesInbox2.clear(); writeJSON(json.encode(listMessagesInbox2), 'listMessagesInbox02.json'); } if (flagOutbox) { listMessagesOutbox2.clear(); writeJSON(json.encode(listMessagesOutbox2), 'listMessagesOutbox02.json'); } } else if (flagSelect) { bFlash = true; if (0 == widget.title.compareTo('收到的消息')) { listMessagesInbox2.removeAt(widget.index); writeJSON(json.encode(listMessagesInbox2), 'listMessagesInbox02.json'); } else if (0 == widget.title.compareTo('发送的消息')) { listMessagesOutbox2.removeAt(widget.index); writeJSON(json.encode(listMessagesOutbox2), 'listMessagesOutbox02.json'); } } print("bFlash = $bFlash"); Navigator.pop(context, true); }); if (ret) { Navigator.pop(context); //关闭弹框,播放输入视频地址 } }, ), getBtnSizeX( text: "取消", onPressedFun: () { Navigator.pop(context); //关闭弹框,播放输入视频地址 }, ), ], ), SizedBox(height: 50), ], ), ), ), ], ), ), ), onWillPop: () { // 屏蔽点击返回键的操作 //player.pause(); Navigator.pop(context); }, ); } }