import 'dart:async'; import 'package:flutter/material.dart'; Future showScore( BuildContext context, { required final int score, required final int time, }) { return Navigator.push( context, RawDialogRoute( barrierDismissible: false, pageBuilder: (_, __, ___) { return _ScoreContent(score: score, time: time); }, )); } class _ScoreContent extends StatefulWidget { final int score; final int time; const _ScoreContent({ super.key, required this.score, required this.time, }); @override State<_ScoreContent> createState() => _ScoreContentState(); } class _ScoreContentState extends State<_ScoreContent> { @override Widget build(BuildContext context) { return Material( type: MaterialType.transparency, child: Center( child: Container( constraints: const BoxConstraints(maxWidth: 320), child: Container( width: double.infinity, height: 280, alignment: Alignment.center, decoration: BoxDecoration( color: const Color(0xFFFFF3E2), borderRadius: BorderRadius.circular(40), ), child: Stack( children: [ Positioned.fill( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox(height: 64), Center( child: Container( height: 80, width: double.infinity, margin: const EdgeInsets.symmetric(horizontal: 32), decoration: BoxDecoration( color: Color(0xFFF8DEC3), borderRadius: BorderRadius.circular(16), ), child: Row( children: [ Expanded( child: Row( children: [ SizedBox(width: 8), Icon( Icons.timer, color: Color(0xFFA3C5FF), size: 32, ), SizedBox(width: 8), Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( '${widget.time}秒', style: TextStyle( fontSize: 18, color: Theme.of(context).colorScheme.primary, ), ), Text( '本次用时', style: TextStyle( fontSize: 12, color: Theme.of(context).colorScheme.secondary, ), ), ], ), ), ], ), ), Expanded( child: Row( children: [ SizedBox(width: 8), Icon( Icons.check_circle, color: Color(0xFFF98170), size: 32, ), SizedBox(width: 8), Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( '${widget.score}分', style: TextStyle( fontSize: 18, color: Theme.of(context).colorScheme.primary, ), ), Text( '本次得分', style: TextStyle( fontSize: 12, color: Theme.of(context).colorScheme.secondary, ), ), ], ), ), ], ), ), ], ), ), ), Expanded( child: Center( child: Text( '小朋友你的呢?', style: TextStyle( fontSize: 24, color: Theme.of(context).colorScheme.onPrimaryContainer, ), ), ), ), ], ), ), Positioned( top: 16, right: 16, child: GestureDetector( onTap: () { Navigator.pop(context); }, child: Container( width: 32, height: 32, decoration: BoxDecoration( borderRadius: BorderRadius.circular(16), color: Color(0x7F666666), ), child: Icon( Icons.close_rounded, color: Colors.white, ), ), ), ), ], ), ), ), ), ); } }