60 lines
2.0 KiB
Dart
60 lines
2.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class MessagePage extends StatelessWidget {
|
|
final List<Map<String, dynamic>> messages = [
|
|
{'title': '系统通知', 'content': '您的账号安全等级已提升', 'time': '10:30', 'unread': false},
|
|
{'title': '活动提醒', 'content': '新活动即将开始,敬请期待', 'time': '昨天', 'unread': true},
|
|
{'title': '版本更新', 'content': '新版本v2.1.0已发布', 'time': '2024-01-20', 'unread': false},
|
|
];
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return ListView.builder(
|
|
itemCount: messages.length,
|
|
itemBuilder: (context, index) {
|
|
final message = messages[index];
|
|
return Card(
|
|
margin: EdgeInsets.symmetric(horizontal: 16, vertical: 4),
|
|
child: ListTile(
|
|
leading: CircleAvatar(
|
|
backgroundColor: message['unread'] ? Colors.blue : Colors.grey,
|
|
child: Icon(
|
|
Icons.notifications,
|
|
color: Colors.white,
|
|
size: 20,
|
|
),
|
|
),
|
|
title: Text(
|
|
message['title'],
|
|
style: TextStyle(
|
|
fontWeight: message['unread'] ? FontWeight.bold : FontWeight.normal,
|
|
),
|
|
),
|
|
subtitle: Text(message['content']),
|
|
trailing: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
Text(
|
|
message['time'],
|
|
style: TextStyle(fontSize: 12, color: Colors.grey),
|
|
),
|
|
if (message['unread'])
|
|
Container(
|
|
margin: EdgeInsets.only(top: 4),
|
|
width: 8,
|
|
height: 8,
|
|
decoration: BoxDecoration(
|
|
color: Colors.red,
|
|
shape: BoxShape.circle,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
onTap: () {},
|
|
),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|