hyzp_ybqx-Commit001:代码刚转换好,编译通过
This commit is contained in:
@@ -0,0 +1,368 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:fluttertoast/fluttertoast.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
//import 'messages_data.dart';
|
||||
import '../../../components/doJSON.dart';
|
||||
import '../../../components/hyxx_data_handle.dart';
|
||||
|
||||
class listMessagesData {
|
||||
List listMessages = [];
|
||||
int listIndex = 0;
|
||||
}
|
||||
|
||||
class MessagesView extends StatefulWidget {
|
||||
//MessagesView({Key key, this.title, this.mapData}) : super(key: key);
|
||||
MessagesView({
|
||||
@required this.title,
|
||||
this.listIndex,
|
||||
Key key,
|
||||
}) : super(key: key);
|
||||
String title;
|
||||
int listIndex = 0;
|
||||
List listMessages;
|
||||
Map<String, listMessagesData> mapListMessagesData;
|
||||
|
||||
_LoginPageState createState() => _LoginPageState();
|
||||
}
|
||||
|
||||
class _LoginPageState extends State<MessagesView> {
|
||||
@override
|
||||
void initState() {
|
||||
// TODO: implement initState
|
||||
super.initState();
|
||||
setInit();
|
||||
}
|
||||
|
||||
String strContent = '';
|
||||
|
||||
setInit() async {
|
||||
widget.mapListMessagesData = Map();
|
||||
widget.mapListMessagesData['收到的消息'] = listMessagesData();
|
||||
widget.mapListMessagesData['发送的消息'] = listMessagesData();
|
||||
|
||||
widget.mapListMessagesData['收到的消息'].listMessages = listMessagesInbox2;
|
||||
widget.mapListMessagesData['发送的消息'].listMessages = listMessagesOutbox2;
|
||||
selectValue = widget.title;
|
||||
switch (selectValue) {
|
||||
case '收到的消息':
|
||||
//第一次调用时widget.listIndex是由外面传入的,不能覆盖widget.listIndex,
|
||||
// 所以单独抽离出一个不会覆盖widget.listIndex的函数
|
||||
onRadioBtnInboxSet();
|
||||
break;
|
||||
case '发送的消息':
|
||||
onRadioBtnOutboxSet();
|
||||
break;
|
||||
}
|
||||
widget.listMessages = widget.mapListMessagesData[selectValue].listMessages;
|
||||
getContent();
|
||||
}
|
||||
|
||||
getPreBtn_NextBtn() {
|
||||
preBtn = getBtnSizeX(
|
||||
text: "上一条",
|
||||
onPressedFun: null,
|
||||
);
|
||||
nextBtn = getBtnSizeX(
|
||||
text: "下一条",
|
||||
onPressedFun: null,
|
||||
);
|
||||
|
||||
if (widget.listIndex > 0 && widget.listMessages.length > 0) {
|
||||
preBtn = getBtnSizeX(
|
||||
text: "上一条",
|
||||
onPressedFun: () async {
|
||||
if (widget.listIndex > 0) {
|
||||
widget.listIndex--;
|
||||
getContent();
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
if (widget.listIndex < (widget.listMessages.length - 1) && widget.listMessages.length > 0) {
|
||||
nextBtn = getBtnSizeX(
|
||||
text: "下一条",
|
||||
onPressedFun: () async {
|
||||
if (widget.listIndex < widget.listMessages.length - 1) {
|
||||
widget.listIndex++;
|
||||
getContent();
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
getContent() async {
|
||||
if (widget.listMessages.isEmpty) {
|
||||
strContent = '';
|
||||
widget.mapListMessagesData[selectValue].listIndex = widget.listIndex = 0;
|
||||
} else {
|
||||
widget.mapListMessagesData[selectValue].listIndex = widget.listIndex;
|
||||
strContent = "第 ${widget.listIndex + 1} 条(共 ${widget.listMessages.length} 条)" +
|
||||
"\n" +
|
||||
"时间:" +
|
||||
widget.listMessages[widget.listIndex]['date'] +
|
||||
", " +
|
||||
widget.listMessages[widget.listIndex]['time'] +
|
||||
"\n\n" +
|
||||
"内容:" +
|
||||
widget.listMessages[widget.listIndex]['content'];
|
||||
}
|
||||
getPreBtn_NextBtn();
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
var selectValue;
|
||||
|
||||
//解决第一次进入报错问题。因为getPreBtn_NextBtn()还未执行,preBtn和nextBtn为空
|
||||
Widget preBtn = Container(
|
||||
color: Colors.white12, //onPressedFun为null时无效
|
||||
width: 70.0,
|
||||
height: 35.0,
|
||||
child: RaisedButton(
|
||||
padding: EdgeInsets.all(0),
|
||||
textColor: Colors.black,
|
||||
child: Text('上一条'),
|
||||
onPressed: null,
|
||||
),
|
||||
);
|
||||
|
||||
Widget nextBtn = Container(
|
||||
color: Colors.white12, //onPressedFun为null时无效
|
||||
width: 70.0,
|
||||
height: 35.0,
|
||||
child: RaisedButton(
|
||||
padding: EdgeInsets.all(0),
|
||||
textColor: Colors.black,
|
||||
child: Text('下一条'),
|
||||
onPressed: null,
|
||||
),
|
||||
);
|
||||
|
||||
Widget getBtnSizeColor(
|
||||
{@required title,
|
||||
width = 70.0,
|
||||
height = 35.0,
|
||||
//colorBK = Colors.white12,
|
||||
txtColor = Colors.black,
|
||||
fontSize = 16.0,
|
||||
bottomBorder = false,
|
||||
onPressedFun}) {
|
||||
return Container(
|
||||
//Failed assertion: line 285 pos 15: 'color == null || decoration == null':
|
||||
// Cannot provide both a color and a decoration
|
||||
//color: colorBK, //onPressedFun为null时无效
|
||||
width: width,
|
||||
height: height,
|
||||
decoration: BoxDecoration(
|
||||
border: bottomBorder ? Border(bottom: BorderSide(width: 1, color: Colors.blue)) : null,
|
||||
),
|
||||
child: FlatButton(
|
||||
padding: EdgeInsets.all(0),
|
||||
textColor: txtColor,
|
||||
child: Text(title, style: TextStyle(fontSize: fontSize)),
|
||||
onPressed: onPressedFun,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget radioBtnInbox;
|
||||
Widget radioBtnOutbox;
|
||||
|
||||
//第一次调用时widget.listIndex是由外面传入的,不能覆盖widget.listIndex,
|
||||
// 所以单独抽离出一个不会覆盖widget.listIndex的函数
|
||||
onRadioBtnInboxSet() {
|
||||
radioBtnInbox = getBtnSizeColor(
|
||||
title: '收到的消息',
|
||||
width: 100.0,
|
||||
onPressedFun: onRadioBtnInbox,
|
||||
//colorBK: Colors.white,
|
||||
txtColor: Colors.blue,
|
||||
bottomBorder: true);
|
||||
radioBtnOutbox = getBtnSizeColor(
|
||||
title: '发送的消息', width: 100.0, onPressedFun: onRadioBtnOutbox, txtColor: Colors.black38);
|
||||
}
|
||||
|
||||
onRadioBtnInbox() {
|
||||
setState(() {
|
||||
selectValue = '收到的消息';
|
||||
onRadioBtnInboxSet();
|
||||
widget.listMessages = widget.mapListMessagesData[selectValue].listMessages;
|
||||
widget.listIndex = widget.mapListMessagesData[selectValue].listIndex;
|
||||
getContent();
|
||||
});
|
||||
}
|
||||
|
||||
onRadioBtnOutboxSet() {
|
||||
radioBtnInbox = getBtnSizeColor(
|
||||
title: '收到的消息', width: 100.0, onPressedFun: onRadioBtnInbox, txtColor: Colors.black38);
|
||||
radioBtnOutbox = getBtnSizeColor(
|
||||
title: '发送的消息',
|
||||
width: 100.0,
|
||||
onPressedFun: onRadioBtnOutbox,
|
||||
//colorBK: Colors.white,
|
||||
txtColor: Colors.blue,
|
||||
bottomBorder: true);
|
||||
}
|
||||
|
||||
onRadioBtnOutbox() {
|
||||
setState(() {
|
||||
selectValue = '发送的消息';
|
||||
onRadioBtnOutboxSet();
|
||||
widget.listMessages = widget.mapListMessagesData[selectValue].listMessages;
|
||||
widget.listIndex = widget.mapListMessagesData[selectValue].listIndex;
|
||||
getContent();
|
||||
});
|
||||
}
|
||||
|
||||
Future<bool> 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: <Widget>[
|
||||
FlatButton(
|
||||
child: Text("确定"),
|
||||
onPressed: onPresse,
|
||||
),
|
||||
FlatButton(
|
||||
child: Text("取消"),
|
||||
onPressed: () {
|
||||
Navigator.pop(context, false);
|
||||
},
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Size mediaSize = MediaQuery.of(context).size;
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: IconButton(
|
||||
icon: const Icon(Icons.arrow_back),
|
||||
onPressed: () {
|
||||
//SystemNavigator.pop(); //退出App
|
||||
Navigator.pop(context); //返回
|
||||
},
|
||||
),
|
||||
centerTitle: true,
|
||||
elevation: 0,
|
||||
backgroundColor: Colors.white,
|
||||
title: Center(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly, // 主轴元素的排序方式(水平布局中,X轴是主轴)
|
||||
crossAxisAlignment: CrossAxisAlignment.end, // 次轴元素的排序方式
|
||||
children: <Widget>[
|
||||
radioBtnInbox,
|
||||
radioBtnOutbox,
|
||||
],
|
||||
),
|
||||
),
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: Icon(Icons.close),
|
||||
onPressed: () async {
|
||||
Navigator.pop(context); //关闭弹框,播放输入视频地址
|
||||
},
|
||||
),
|
||||
SizedBox(
|
||||
width: 10,
|
||||
),
|
||||
],
|
||||
),
|
||||
body: Container(
|
||||
alignment: Alignment(0, 0),
|
||||
child: Container(
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
padding: EdgeInsets.fromLTRB(20, 10, 20, 10),
|
||||
width: double.infinity,
|
||||
height: mediaSize.height * 0.75,
|
||||
child: SingleChildScrollView(
|
||||
child: Container(
|
||||
child: Text(strContent),
|
||||
),
|
||||
),
|
||||
),
|
||||
Divider(
|
||||
color: Colors.blue,
|
||||
),
|
||||
SizedBox(
|
||||
height: 6,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: <Widget>[
|
||||
getBtnSizeX(
|
||||
text: "复制",
|
||||
onPressedFun: () {
|
||||
// Flutter 复制文本到剪贴板
|
||||
Clipboard.setData(ClipboardData(
|
||||
text: ' ' +
|
||||
selectValue +
|
||||
'\n\n' +
|
||||
widget.listMessages[widget.listIndex]['content']));
|
||||
//showToast('帮助信息已复制到剪贴板', textAlign: TextAlign.left);
|
||||
Fluttertoast.showToast(msg: '帮助信息已复制到剪贴板', gravity: ToastGravity.CENTER);
|
||||
//Navigator.pop(context, ret);
|
||||
}),
|
||||
getBtnSizeX(
|
||||
text: "删除",
|
||||
onPressedFun: () async {
|
||||
//Navigator.pop(context); //关闭弹框,播放输入视频地址
|
||||
bool ret = await alertDialog('删除确认', '是否确定要删除当前项目?', () {
|
||||
if (0 == selectValue.compareTo('收到的消息')) {
|
||||
listMessagesInbox2.removeAt(widget.listIndex);
|
||||
widget.mapListMessagesData['收到的消息'].listMessages = listMessagesInbox2;
|
||||
writeJSON(json.encode(listMessagesInbox2), 'listMessagesInbox02.json');
|
||||
} else if (0 == selectValue.compareTo('发送的消息')) {
|
||||
listMessagesOutbox2.removeAt(widget.listIndex);
|
||||
widget.mapListMessagesData['发送的消息'].listMessages = listMessagesOutbox2;
|
||||
writeJSON(
|
||||
json.encode(listMessagesOutbox2), 'listMessagesOutbox02.json');
|
||||
}
|
||||
if (widget.listIndex > 0) {
|
||||
widget.listIndex--;
|
||||
}
|
||||
widget.listMessages =
|
||||
widget.mapListMessagesData[selectValue].listMessages;
|
||||
getContent();
|
||||
Navigator.pop(context);
|
||||
});
|
||||
}),
|
||||
preBtn,
|
||||
nextBtn,
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget getBtnSizeX({@required text, width = 70.0, height = 35.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,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,229 @@
|
||||
List listMessagesOutbox = [
|
||||
{
|
||||
"title": '工作汇报',
|
||||
"date": '20200325',
|
||||
"time": '09:19',
|
||||
"content": "已经处理了7个黑烟事件的初审和推送工作"
|
||||
},
|
||||
{
|
||||
"title": "数据统计",
|
||||
"date": '20200608',
|
||||
"time": '13:55',
|
||||
"content": "已经完成2020年4月份的黑烟事件数据统计工作",
|
||||
},
|
||||
{
|
||||
"title": '工作汇报',
|
||||
"date": '20200325',
|
||||
"time": '09:19',
|
||||
"content": "已经处理了7个黑烟事件的初审和推送工作"
|
||||
},
|
||||
{
|
||||
"title": "数据统计",
|
||||
"date": '20200608',
|
||||
"time": '13:55',
|
||||
"content": "已经完成2020年4月份的黑烟事件数据统计工作",
|
||||
},
|
||||
{
|
||||
"title": '工作汇报',
|
||||
"date": '20200325',
|
||||
"time": '09:19',
|
||||
"content": "已经处理了7个黑烟事件的初审和推送工作"
|
||||
},
|
||||
{
|
||||
"title": "数据统计",
|
||||
"date": '20200608',
|
||||
"time": '13:55',
|
||||
"content": "已经完成2020年4月份的黑烟事件数据统计工作",
|
||||
},
|
||||
{
|
||||
"title": '工作汇报',
|
||||
"date": '20200325',
|
||||
"time": '09:19',
|
||||
"content": "已经处理了7个黑烟事件的初审和推送工作"
|
||||
},
|
||||
{
|
||||
"title": "数据统计",
|
||||
"date": '20200608',
|
||||
"time": '13:55',
|
||||
"content": "已经完成2020年4月份的黑烟事件数据统计工作",
|
||||
},
|
||||
{
|
||||
"title": '工作汇报',
|
||||
"date": '20200325',
|
||||
"time": '09:19',
|
||||
"content": "已经处理了7个黑烟事件的初审和推送工作"
|
||||
},
|
||||
{
|
||||
"title": "数据统计",
|
||||
"date": '20200608',
|
||||
"time": '13:55',
|
||||
"content": "已经完成2020年4月份的黑烟事件数据统计工作",
|
||||
},
|
||||
{
|
||||
"title": '工作汇报',
|
||||
"date": '20200325',
|
||||
"time": '09:19',
|
||||
"content": "已经处理了7个黑烟事件的初审和推送工作"
|
||||
},
|
||||
{
|
||||
"title": "数据统计",
|
||||
"date": '20200608',
|
||||
"time": '13:55',
|
||||
"content": "已经完成2020年4月份的黑烟事件数据统计工作",
|
||||
},
|
||||
{
|
||||
"title": '工作汇报',
|
||||
"date": '20200325',
|
||||
"time": '09:19',
|
||||
"content": "已经处理了7个黑烟事件的初审和推送工作"
|
||||
},
|
||||
{
|
||||
"title": "数据统计",
|
||||
"date": '20200608',
|
||||
"time": '13:55',
|
||||
"content": "已经完成2020年4月份的黑烟事件数据统计工作",
|
||||
},
|
||||
{
|
||||
"title": '工作汇报',
|
||||
"date": '20200325',
|
||||
"time": '09:19',
|
||||
"content": "已经处理了7个黑烟事件的初审和推送工作"
|
||||
},
|
||||
{
|
||||
"title": "数据统计",
|
||||
"date": '20200608',
|
||||
"time": '13:55',
|
||||
"content": "已经完成2020年4月份的黑烟事件数据统计工作",
|
||||
},
|
||||
];
|
||||
|
||||
List listMessagesInbox = [
|
||||
{
|
||||
"title": '三千多人预约办事每天只放47个号 这县被国办通报!',
|
||||
"date": '20200311',
|
||||
"time": '10:23',
|
||||
"content": "2020年10月,按照国务院第七次大督查的统一部署,14个国务院督查组分赴14个省(区、市)"
|
||||
"和新疆生产建设兵团开展实地督查。督查发现,部分地方和部门仍存在违规设置行政审批环节,"
|
||||
"擅自构筑市场准入壁垒等问题,推进“一网通办”、“只进一扇门”、“最多跑一次”还有堵点障碍。",
|
||||
},
|
||||
{
|
||||
"title": "阿根廷举行马拉多纳遗体告别仪式:棺椁覆盖10号球衣",
|
||||
"date": '20200317',
|
||||
"time": '16:02',
|
||||
"content": "【马拉多纳遗体告别仪式:棺椁覆盖10号球衣】阿根廷传奇球星马拉多纳的告别仪式正在举行中,"
|
||||
"阿根廷TN电视台直播的画面显示,马拉多纳的棺材上覆盖着阿根廷国旗和10号球衣,"
|
||||
"球迷排队进入总统府玫瑰宫向这位传奇球星告别。(中国日报网)",
|
||||
},
|
||||
{
|
||||
"title": '三千多人预约办事每天只放47个号 这县被国办通报!',
|
||||
"date": '20200311',
|
||||
"time": '10:23',
|
||||
"content": "2020年10月,按照国务院第七次大督查的统一部署,14个国务院督查组分赴14个省(区、市)"
|
||||
"和新疆生产建设兵团开展实地督查。督查发现,部分地方和部门仍存在违规设置行政审批环节,"
|
||||
"擅自构筑市场准入壁垒等问题,推进“一网通办”、“只进一扇门”、“最多跑一次”还有堵点障碍。",
|
||||
},
|
||||
{
|
||||
"title": "阿根廷举行马拉多纳遗体告别仪式:棺椁覆盖10号球衣",
|
||||
"date": '20200317',
|
||||
"time": '16:02',
|
||||
"content": "【马拉多纳遗体告别仪式:棺椁覆盖10号球衣】阿根廷传奇球星马拉多纳的告别仪式正在举行中,"
|
||||
"阿根廷TN电视台直播的画面显示,马拉多纳的棺材上覆盖着阿根廷国旗和10号球衣,"
|
||||
"球迷排队进入总统府玫瑰宫向这位传奇球星告别。(中国日报网)",
|
||||
},
|
||||
{
|
||||
"title": '三千多人预约办事每天只放47个号 这县被国办通报!',
|
||||
"date": '20200311',
|
||||
"time": '10:23',
|
||||
"content": "2020年10月,按照国务院第七次大督查的统一部署,14个国务院督查组分赴14个省(区、市)"
|
||||
"和新疆生产建设兵团开展实地督查。督查发现,部分地方和部门仍存在违规设置行政审批环节,"
|
||||
"擅自构筑市场准入壁垒等问题,推进“一网通办”、“只进一扇门”、“最多跑一次”还有堵点障碍。",
|
||||
},
|
||||
{
|
||||
"title": "阿根廷举行马拉多纳遗体告别仪式:棺椁覆盖10号球衣",
|
||||
"date": '20200317',
|
||||
"time": '16:02',
|
||||
"content": "【马拉多纳遗体告别仪式:棺椁覆盖10号球衣】阿根廷传奇球星马拉多纳的告别仪式正在举行中,"
|
||||
"阿根廷TN电视台直播的画面显示,马拉多纳的棺材上覆盖着阿根廷国旗和10号球衣,"
|
||||
"球迷排队进入总统府玫瑰宫向这位传奇球星告别。(中国日报网)",
|
||||
},
|
||||
{
|
||||
"title": '三千多人预约办事每天只放47个号 这县被国办通报!',
|
||||
"date": '20200311',
|
||||
"time": '10:23',
|
||||
"content": "2020年10月,按照国务院第七次大督查的统一部署,14个国务院督查组分赴14个省(区、市)"
|
||||
"和新疆生产建设兵团开展实地督查。督查发现,部分地方和部门仍存在违规设置行政审批环节,"
|
||||
"擅自构筑市场准入壁垒等问题,推进“一网通办”、“只进一扇门”、“最多跑一次”还有堵点障碍。",
|
||||
},
|
||||
{
|
||||
"title": "阿根廷举行马拉多纳遗体告别仪式:棺椁覆盖10号球衣",
|
||||
"date": '20200317',
|
||||
"time": '16:02',
|
||||
"content": "【马拉多纳遗体告别仪式:棺椁覆盖10号球衣】阿根廷传奇球星马拉多纳的告别仪式正在举行中,"
|
||||
"阿根廷TN电视台直播的画面显示,马拉多纳的棺材上覆盖着阿根廷国旗和10号球衣,"
|
||||
"球迷排队进入总统府玫瑰宫向这位传奇球星告别。(中国日报网)",
|
||||
},
|
||||
{
|
||||
"title": '三千多人预约办事每天只放47个号 这县被国办通报!',
|
||||
"date": '20200311',
|
||||
"time": '10:23',
|
||||
"content": "2020年10月,按照国务院第七次大督查的统一部署,14个国务院督查组分赴14个省(区、市)"
|
||||
"和新疆生产建设兵团开展实地督查。督查发现,部分地方和部门仍存在违规设置行政审批环节,"
|
||||
"擅自构筑市场准入壁垒等问题,推进“一网通办”、“只进一扇门”、“最多跑一次”还有堵点障碍。",
|
||||
},
|
||||
{
|
||||
"title": "阿根廷举行马拉多纳遗体告别仪式:棺椁覆盖10号球衣",
|
||||
"date": '20200317',
|
||||
"time": '16:02',
|
||||
"content": "【马拉多纳遗体告别仪式:棺椁覆盖10号球衣】阿根廷传奇球星马拉多纳的告别仪式正在举行中,"
|
||||
"阿根廷TN电视台直播的画面显示,马拉多纳的棺材上覆盖着阿根廷国旗和10号球衣,"
|
||||
"球迷排队进入总统府玫瑰宫向这位传奇球星告别。(中国日报网)",
|
||||
},
|
||||
{
|
||||
"title": '三千多人预约办事每天只放47个号 这县被国办通报!',
|
||||
"date": '20200311',
|
||||
"time": '10:23',
|
||||
"content": "2020年10月,按照国务院第七次大督查的统一部署,14个国务院督查组分赴14个省(区、市)"
|
||||
"和新疆生产建设兵团开展实地督查。督查发现,部分地方和部门仍存在违规设置行政审批环节,"
|
||||
"擅自构筑市场准入壁垒等问题,推进“一网通办”、“只进一扇门”、“最多跑一次”还有堵点障碍。",
|
||||
},
|
||||
{
|
||||
"title": "阿根廷举行马拉多纳遗体告别仪式:棺椁覆盖10号球衣",
|
||||
"date": '20200317',
|
||||
"time": '16:02',
|
||||
"content": "【马拉多纳遗体告别仪式:棺椁覆盖10号球衣】阿根廷传奇球星马拉多纳的告别仪式正在举行中,"
|
||||
"阿根廷TN电视台直播的画面显示,马拉多纳的棺材上覆盖着阿根廷国旗和10号球衣,"
|
||||
"球迷排队进入总统府玫瑰宫向这位传奇球星告别。(中国日报网)",
|
||||
},
|
||||
{
|
||||
"title": '三千多人预约办事每天只放47个号 这县被国办通报!',
|
||||
"date": '20200311',
|
||||
"time": '10:23',
|
||||
"content": "2020年10月,按照国务院第七次大督查的统一部署,14个国务院督查组分赴14个省(区、市)"
|
||||
"和新疆生产建设兵团开展实地督查。督查发现,部分地方和部门仍存在违规设置行政审批环节,"
|
||||
"擅自构筑市场准入壁垒等问题,推进“一网通办”、“只进一扇门”、“最多跑一次”还有堵点障碍。",
|
||||
},
|
||||
{
|
||||
"title": "阿根廷举行马拉多纳遗体告别仪式:棺椁覆盖10号球衣",
|
||||
"date": '20200317',
|
||||
"time": '16:02',
|
||||
"content": "【马拉多纳遗体告别仪式:棺椁覆盖10号球衣】阿根廷传奇球星马拉多纳的告别仪式正在举行中,"
|
||||
"阿根廷TN电视台直播的画面显示,马拉多纳的棺材上覆盖着阿根廷国旗和10号球衣,"
|
||||
"球迷排队进入总统府玫瑰宫向这位传奇球星告别。(中国日报网)",
|
||||
},
|
||||
{
|
||||
"title": '三千多人预约办事每天只放47个号 这县被国办通报!',
|
||||
"date": '20200311',
|
||||
"time": '10:23',
|
||||
"content": "2020年10月,按照国务院第七次大督查的统一部署,14个国务院督查组分赴14个省(区、市)"
|
||||
"和新疆生产建设兵团开展实地督查。督查发现,部分地方和部门仍存在违规设置行政审批环节,"
|
||||
"擅自构筑市场准入壁垒等问题,推进“一网通办”、“只进一扇门”、“最多跑一次”还有堵点障碍。",
|
||||
},
|
||||
{
|
||||
"title": "阿根廷举行马拉多纳遗体告别仪式:棺椁覆盖10号球衣",
|
||||
"date": '20200317',
|
||||
"time": '16:02',
|
||||
"content": "【马拉多纳遗体告别仪式:棺椁覆盖10号球衣】阿根廷传奇球星马拉多纳的告别仪式正在举行中,"
|
||||
"阿根廷TN电视台直播的画面显示,马拉多纳的棺材上覆盖着阿根廷国旗和10号球衣,"
|
||||
"球迷排队进入总统府玫瑰宫向这位传奇球星告别。(中国日报网)",
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,113 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'message_content.dart';
|
||||
//import 'messages_data.dart';
|
||||
import '../../../components/doJSON.dart';
|
||||
import '../../../components/hyxx_data_handle.dart';
|
||||
import '../../../components/customDialogG.dart';
|
||||
|
||||
class MessagesInbox extends StatefulWidget {
|
||||
MessagesInbox({Key key}) : super(key: key);
|
||||
|
||||
_LoginPageState createState() => _LoginPageState();
|
||||
}
|
||||
|
||||
class _LoginPageState extends State<MessagesInbox> {
|
||||
Widget _getListTile(BuildContext context, index) {
|
||||
return Column(
|
||||
children: <Widget>[
|
||||
ListTile(
|
||||
//leading: new Icon(Icons.phone),
|
||||
title: new Text(listMessagesInbox2[index]['date'], style: TextStyle(fontSize: 10)),
|
||||
subtitle: Text(listMessagesInbox2[index]['time'], style: TextStyle(fontSize: 10)),
|
||||
trailing: Container(
|
||||
width: 260,
|
||||
child: Text(
|
||||
listMessagesInbox2[index]['title'],
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
//textAlign: TextAlign.right,
|
||||
style: TextStyle(fontSize: 16),
|
||||
),
|
||||
),
|
||||
contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 0),
|
||||
enabled: true,
|
||||
onTap: () {
|
||||
// Navigator.of(context).push(MaterialPageRoute(
|
||||
// builder: (context) => MessagesView(
|
||||
// title: '收到的消息', mapData: listMessagesInbox2[index])));
|
||||
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MessagesView(title: '收到的消息', listIndex: index),
|
||||
),
|
||||
);
|
||||
|
||||
// Navigator.push(context, MaterialPageRoute(builder: (context) {
|
||||
// return MessagesOutbox(
|
||||
// title: "PeakPlayer帮助信息", mapData: listMessagesInbox2[index]);
|
||||
// }));
|
||||
},
|
||||
onLongPress: () async {
|
||||
bFlash = false;
|
||||
// Navigator.of(context).push(
|
||||
// MaterialPageRoute(
|
||||
// builder: (context) => customDialogG(
|
||||
// title: '收到的消息',
|
||||
// index: index),
|
||||
// ),
|
||||
// );
|
||||
Navigator.of(context).push(
|
||||
PageRouteBuilder(
|
||||
opaque: false,
|
||||
pageBuilder: (context, animation, secondaryAnimation) =>
|
||||
customDialogG(title: '收到的消息', index: index),
|
||||
),
|
||||
// pageBuilder: (context, animation, secondaryAnimation) {
|
||||
// return Scaffold(
|
||||
// backgroundColor: Colors.transparent,
|
||||
// body: SafeArea(
|
||||
// child: Stack(
|
||||
// children: <Widget>[
|
||||
// Text('text'),
|
||||
// //...
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
// },
|
||||
).then((value) {
|
||||
print('Page2_Contacts bFlash = $bFlash');
|
||||
if (bFlash) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
},
|
||||
),
|
||||
Divider(
|
||||
height: 1.0,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
//Flutter Column套ListView不显示,可将ListView用Expanded包裹起来。
|
||||
child: ListView.builder(
|
||||
itemCount: listMessagesInbox2.length,
|
||||
itemBuilder: _getListTile,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'messages_inbox.dart';
|
||||
import 'messages_outbox.dart';
|
||||
|
||||
class MessagesManagePage extends StatefulWidget {
|
||||
MessagesManagePage({Key key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_MessagesManagePageState createState() => _MessagesManagePageState();
|
||||
}
|
||||
|
||||
class _MessagesManagePageState extends State<MessagesManagePage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return DefaultTabController(
|
||||
length: 2,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('消息管理'),
|
||||
centerTitle: true,
|
||||
bottom: TabBar(
|
||||
labelColor: Colors.blueAccent,
|
||||
unselectedLabelColor: Colors.black26,
|
||||
tabs: <Widget>[Tab(text: "收件箱"), Tab(text: "已发送")],
|
||||
),
|
||||
),
|
||||
body: TabBarView(
|
||||
//flutter tabbar禁止手势滑动-OK
|
||||
physics: new NeverScrollableScrollPhysics(),
|
||||
children: <Widget>[
|
||||
MessagesInbox(),
|
||||
MessagesOutbox(),
|
||||
],
|
||||
),
|
||||
),
|
||||
// theme: ThemeData(
|
||||
// primarySwatch: Colors.yellow
|
||||
// ),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'message_content.dart';
|
||||
import '../../../components/hyxx_data_handle.dart';
|
||||
import '../../../components/customDialogG.dart';
|
||||
|
||||
class MessagesOutbox extends StatefulWidget {
|
||||
MessagesOutbox({Key key}) : super(key: key);
|
||||
|
||||
_LoginPageState createState() => _LoginPageState();
|
||||
}
|
||||
|
||||
class _LoginPageState extends State<MessagesOutbox> {
|
||||
Widget _getListTile(BuildContext context, index) {
|
||||
return Column(
|
||||
children: <Widget>[
|
||||
ListTile(
|
||||
//leading: new Icon(Icons.phone),
|
||||
title: new Text(listMessagesOutbox2[index]['date'],
|
||||
style: TextStyle(fontSize: 10)),
|
||||
subtitle: Text(listMessagesOutbox2[index]['time'],
|
||||
style: TextStyle(fontSize: 10)),
|
||||
trailing: Container(
|
||||
width: 260,
|
||||
child: Text(
|
||||
listMessagesOutbox2[index]['title'],
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
//textAlign: TextAlign.right,
|
||||
style: TextStyle(fontSize: 16),
|
||||
),
|
||||
),
|
||||
contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 0),
|
||||
enabled: true,
|
||||
onTap: () {
|
||||
// Navigator.of(context).push(MaterialPageRoute(
|
||||
// builder: (context) => MessagesView(
|
||||
// title: '发送的消息', mapData: listMessagesOutbox2[index])));
|
||||
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MessagesView(
|
||||
title: '发送的消息',
|
||||
listIndex: index),
|
||||
),
|
||||
);
|
||||
|
||||
// Navigator.push(context, MaterialPageRoute(builder: (context) {
|
||||
// return MessagesOutbox(
|
||||
// title: "PeakPlayer帮助信息", mapData: listMessagesOutbox2[index]);
|
||||
// }));
|
||||
},
|
||||
onLongPress: () {
|
||||
bFlash = false;
|
||||
Navigator.of(context).push(
|
||||
PageRouteBuilder(
|
||||
opaque: false,
|
||||
pageBuilder: (context, animation, secondaryAnimation) =>
|
||||
customDialogG(title: '发送的消息', index: index),
|
||||
),
|
||||
).then((value) {
|
||||
print('Page2_Contacts bFlash = $bFlash');
|
||||
if (bFlash) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
},
|
||||
),
|
||||
Divider(
|
||||
height: 1.0,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
//Flutter Column套ListView不显示,可将ListView用Expanded包裹起来。
|
||||
child: ListView.builder(
|
||||
itemCount: listMessagesOutbox2.length,
|
||||
itemBuilder: _getListTile,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user