Files
KiriMemo/lib/pages/about_page.dart
T
pluv 1a48833914 chore: license the project under AGPL-3.0
- 添加官方 AGPL-3.0 全文
- LICENSE 作为 asset 打包,注册进 Flutter 许可清单
- 关于页「开源许可」改为打开许可页
- README 补充简介、开发命令与许可说明
2026-10-24 15:25:04 +08:00

82 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
import '../app_info.dart';
/// 关于页。
class AboutPage extends StatelessWidget {
const AboutPage({super.key});
@override
Widget build(BuildContext context) {
final ThemeData theme = Theme.of(context);
final ColorScheme colors = theme.colorScheme;
return Scaffold(
appBar: AppBar(title: const Text('关于')),
body: ListView(
padding: const EdgeInsets.fromLTRB(24, 32, 24, 32),
children: <Widget>[
Center(
child: Container(
width: 72,
height: 72,
decoration: BoxDecoration(
color: colors.primaryContainer,
borderRadius: BorderRadius.circular(20),
),
child: Icon(
Icons.menu_book_rounded,
size: 36,
color: colors.onPrimaryContainer,
),
),
),
const SizedBox(height: 16),
Center(child: Text(appName, style: theme.textTheme.headlineSmall)),
const SizedBox(height: 4),
Center(
child: Text(
'版本 $appVersion',
style: theme.textTheme.bodySmall?.copyWith(
color: colors.onSurfaceVariant,
),
),
),
const SizedBox(height: 28),
Container(
padding: const EdgeInsets.all(16),
decoration: BoxDecoration(
color: colors.surfaceContainerLow,
borderRadius: BorderRadius.circular(16),
),
child: Text(
'KiriMemo 是 HeurAMS 的移动端前端:用单元集组织材料,'
'用多种谜题测验同一条知识,调度算法可以按单元集替换。',
style: theme.textTheme.bodyMedium?.copyWith(height: 1.6),
),
),
const SizedBox(height: 24),
ListTile(
contentPadding: EdgeInsets.zero,
leading: Icon(
Icons.description_outlined,
color: colors.onSurfaceVariant,
),
title: const Text('开源许可'),
subtitle: const Text('GNU AGPL v3.0'),
trailing: Icon(
Icons.chevron_right_rounded,
color: colors.onSurfaceVariant,
),
onTap: () => showLicensePage(
context: context,
applicationName: appName,
applicationVersion: appVersion,
),
),
],
),
);
}
}