build method
- BuildContext context
override
Builds the settings page.
The page contains the following widgets, from top to bottom:
- A CupertinoNavigationBar with the title "Settings".
- A SettingsTile for the user to select their login method.
- A SettingsTile for the user to select the app language.
- A SettingsTile for the user to view app information.
- A SettingsTile for the user to view the app's history.
- A SettingsTile for the user to view the app's online store.
- A SettingsTile for the user to contact the app developers.
The page is wrapped in a CupertinoPageScaffold and a ListView.
The page is a StatelessWidget.
Implementation
@override
/// Builds the settings page.
///
/// The page contains the following widgets, from top to bottom:
///
/// 1. A [CupertinoNavigationBar] with the title "Settings".
/// 2. A [SettingsTile] for the user to select their login method.
/// 3. A [SettingsTile] for the user to select the app language.
/// 4. A [SettingsTile] for the user to view app information.
/// 5. A [SettingsTile] for the user to view the app's history.
/// 6. A [SettingsTile] for the user to view the app's online store.
/// 7. A [SettingsTile] for the user to contact the app developers.
///
/// The page is wrapped in a [CupertinoPageScaffold] and a [ListView].
///
/// The page is a [StatelessWidget].
///
Widget build(BuildContext context) {
final tr = AppLocalizations.of(context)!;
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text(tr.settings),
enableBackgroundFilterBlur: true,
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: SingleChildScrollView(
physics: const ScrollPhysics(),
child: Column(
spacing: 8,
children: [
Container(
decoration: BoxDecoration(
color: CupertinoColors.systemGroupedBackground,
borderRadius: BorderRadius.circular(
AppConstants.inBorderRadius,
),
),
child: Column(
children: [
SettingsTile(
title: tr.login,
subtitle: tr.loginSuptitle,
icon: CupertinoIcons.person_crop_circle,
trailingIcon: CupertinoIcons.forward,
onPressed: () {
Navigator.pop(context);
Navigator.pushReplacement(
context,
CupertinoPageRoute(builder: (context) => LoginPage()),
);
},
),
SettingsTile(
title: tr.language,
subtitle: tr.selectLanguage,
icon: CupertinoIcons.globe,
trailingIcon: CupertinoIcons.forward,
onPressed: () {
Navigator.push(
context,
CupertinoPageRoute(
builder: (context) => const ChangeLocals(),
),
);
},
),
],
),
),
Container(
decoration: BoxDecoration(
color: CupertinoColors.systemGroupedBackground,
borderRadius: BorderRadius.circular(
AppConstants.inBorderRadius,
),
),
child: Column(
children: [
SettingsTile(
title: tr.infoAboutQissatHirfati,
subtitle: tr.infoAboutQissatHirfatiSuptitle,
icon: CupertinoIcons.info,
trailingIcon: CupertinoIcons.forward,
onPressed: () {
Navigator.pop(context);
Navigator.push(
context,
CupertinoPageRoute(
builder: (context) => const AboutApp(),
),
);
},
),
SettingsTile(
title: tr.ourHistory,
subtitle: tr.ourHistorySuptitle,
icon: CupertinoIcons.book,
trailingIcon: CupertinoIcons.forward,
onPressed: () {
Navigator.pop(context);
// Navigator.push(
// context,
// CupertinoPageRoute(
// builder: (context) => OurHistory(),
// ),
// );
},
),
SettingsTile(
title: tr.ourOnLineStore,
subtitle: tr.ourOnLineStoreSuptitle,
icon: CupertinoIcons.shopping_cart,
trailingIcon: CupertinoIcons.forward,
onPressed: () {
UrlRunServices.launchURL(AppConstants.appStroreUrl);
},
),
SettingsTile(
title: tr.contactUs,
subtitle: tr.contactUsSuptitle,
icon: CupertinoIcons.phone,
trailingIcon: CupertinoIcons.forward,
onPressed: () {
Navigator.pop(context);
Navigator.push(
context,
CupertinoPageRoute(
builder: (context) => const ContactUs(),
),
);
},
),
const SizedBox(height: 8),
],
),
),
],
),
),
),
);
}