feat: level layout
This commit is contained in:
parent
c979904f95
commit
9aaf00e627
61
lib/level.dart
Normal file
61
lib/level.dart
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class Level extends StatelessWidget {
|
||||||
|
const Level({super.key});
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
leading: Icon(Icons.pause),
|
||||||
|
title: Text('Level 1'),
|
||||||
|
actions: [
|
||||||
|
IconButton(
|
||||||
|
icon: Icon(Icons.close),
|
||||||
|
onPressed: () => Navigator.pop(context))
|
||||||
|
],
|
||||||
|
),
|
||||||
|
body: Stack(children: [
|
||||||
|
Arrow( position: -100.0,),
|
||||||
|
Arrow( position: 00.0,),
|
||||||
|
Arrow( position: 100.0,),
|
||||||
|
Arrow( position: 200.0,),
|
||||||
|
Positioned(
|
||||||
|
top: 50,
|
||||||
|
width: MediaQuery.of(context).size.width,
|
||||||
|
left: 0,
|
||||||
|
child: Text(
|
||||||
|
"Great!",
|
||||||
|
textScaler: TextScaler.linear(4),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
left: MediaQuery.of(context).size.width / 2 - 50,
|
||||||
|
bottom: 50,
|
||||||
|
child: Container(
|
||||||
|
width: 100,
|
||||||
|
height: 100,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
// color: Colors.blue,
|
||||||
|
border: Border.all(color: Colors.black, width: 10)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Arrow extends StatelessWidget {
|
||||||
|
final double position;
|
||||||
|
|
||||||
|
const Arrow({super.key, required this.position});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Positioned(
|
||||||
|
left: MediaQuery.of(context).size.width / 2 - 25, // Center the arrow
|
||||||
|
top: position,
|
||||||
|
child: Icon(size: 100, Icons.arrow_forward),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'level.dart';
|
||||||
|
|
||||||
class LevelSelection extends StatelessWidget {
|
class LevelSelection extends StatelessWidget {
|
||||||
final List<String> _musicList = [
|
final List<String> _musicList = [
|
||||||
"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3",
|
"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3",
|
||||||
|
@ -26,13 +28,13 @@ class LevelSelection extends StatelessWidget {
|
||||||
trailing: Icon(Icons.play_arrow),
|
trailing: Icon(Icons.play_arrow),
|
||||||
title: Text('Track ${index + 1}'),
|
title: Text('Track ${index + 1}'),
|
||||||
subtitle: Text('3:45'),
|
subtitle: Text('3:45'),
|
||||||
|
onTap: () => Navigator.push(context,
|
||||||
|
MaterialPageRoute(builder: (BuildContext context) => Level())),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
floatingActionButton: FloatingActionButton(
|
floatingActionButton:
|
||||||
onPressed: () => {},
|
FloatingActionButton(onPressed: () => {}, child: Icon(Icons.add)),
|
||||||
child: Icon(Icons.add)
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue