ranking_page.dart 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import 'package:flutter/material.dart';
  2. import 'package:physigo/ranking/widgets/ranking.dart';
  3. import '../currentUser.dart';
  4. import '../widgets/datatable.dart';
  5. class RankingPage extends StatefulWidget {
  6. const RankingPage({Key? key}) : super(key: key);
  7. @override
  8. State<RankingPage> createState() => _RankingPageState();
  9. }
  10. class _RankingPageState extends State<RankingPage> {
  11. static const List<Widget> _widgets = [
  12. Ranking(ranks: MyDataTable(name: "daily_points"), currentUser: CurrentUser(name: "daily_points")),
  13. Ranking(ranks: MyDataTable(name: "weekly_points"), currentUser: CurrentUser(name: "weekly_points")),
  14. Ranking(ranks: MyDataTable(name: "total_points"), currentUser: CurrentUser(name: "total_points")),
  15. Ranking(ranks: MyDataTable(name: "total_points"), currentUser: CurrentUser(name: "total_points")),
  16. ];
  17. @override
  18. Widget build(BuildContext context) {
  19. return DefaultTabController(
  20. length: _widgets.length,
  21. child: SafeArea(
  22. child: Scaffold(
  23. appBar: AppBar(
  24. automaticallyImplyLeading: false,
  25. bottom: const TabBar(
  26. isScrollable: true,
  27. tabs: [
  28. Tab(child: Text("Daily Challenge", style: TextStyle(fontSize: 18))),
  29. Tab(child: Text("Weekly Challenge", style: TextStyle(fontSize: 18))),
  30. Tab(child: Text("Total", style: TextStyle(fontSize: 18))),
  31. Tab(child: Text("Exercises", style: TextStyle(fontSize: 18))),
  32. ],
  33. ),
  34. ),
  35. body: const Center(
  36. child: Padding(
  37. padding: EdgeInsets.all(32.0),
  38. child: TabBarView(children: _widgets),
  39. ),
  40. ),
  41. ),
  42. ),
  43. );
  44. }
  45. }