63 lines
1.6 KiB
Dart
63 lines
1.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:simple_git/resources/colors_schemes/lib_color_schemes.g.dart';
|
|
|
|
import 'about_page.dart';
|
|
import 'settings_page.dart';
|
|
|
|
class MorePage extends StatefulWidget {
|
|
const MorePage({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
State<MorePage> createState() => _MorePageState();
|
|
}
|
|
|
|
class _MorePageState extends State<MorePage> {
|
|
final _texts = [
|
|
"Settings",
|
|
"About",
|
|
];
|
|
|
|
final _icons = [
|
|
Icons.settings_outlined,
|
|
Icons.info_outline,
|
|
];
|
|
|
|
final _pages = [
|
|
SettingsPage(),
|
|
AboutPage(),
|
|
];
|
|
|
|
int stateIndex = 0;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: Text('More',
|
|
style: TextStyle(color: lightColorScheme.onPrimaryContainer)),
|
|
backgroundColor: lightColorScheme.primaryContainer,
|
|
elevation: 0,
|
|
),
|
|
body: ListView.builder(
|
|
// padding: const EdgeInsets.all(20.0),
|
|
itemCount: _texts.length,
|
|
itemBuilder: (context, index) {
|
|
return ListTile(
|
|
onTap: () => selectOption(index),
|
|
title: Text(_texts[index]),
|
|
leading: Icon(_icons[index], color: lightColorScheme.primary),
|
|
);
|
|
},
|
|
),
|
|
);
|
|
}
|
|
|
|
selectOption(index) {
|
|
stateIndex = index;
|
|
Navigator.of(context).push(PageRouteBuilder(
|
|
pageBuilder: (context, animation, secondaryAnimation) => _pages[index],
|
|
transitionsBuilder: (c, anim, a2, child) => FadeTransition(opacity: anim, child: child),
|
|
transitionDuration: const Duration(milliseconds: 150),
|
|
));
|
|
}
|
|
}
|