import 'package:flutter/material.dart';
class AppVersionModel extends InheritedModel<String> {
final String version;
AppVersionModel({
Key? key,
required this.version,
required Widget child,
}) : super(key: key, child: child);
@override
bool updateShouldNotifyDependent(
covariant InheritedModel<String> oldWidget, Set<String> dependencies) {
return dependencies.contains('version');
}
@override
bool updateShouldNotify(AppVersionModel oldWidget) {
return version != oldWidget.version;
}
static AppVersionModel of(BuildContext context, String aspect) {
return InheritedModel.inheritFrom<AppVersionModel>(context, aspect: aspect)!;
}
}
class MyApp extends StatelessWidget {
final String appVersion = '1.0';
@override
Widget build(BuildContext context) {
return AppVersionModel(
version: appVersion,
child: MaterialApp(
title: 'My App',
home: AppHome(),
),
);
}
}
class AppHome extends StatelessWidget {
@override
Widget build(BuildContext context) {
final appVersionModel = AppVersionModel.of(context, 'version');
final currentVersion = appVersionModel.version;
return Scaffold(
appBar: AppBar(
title: Text('My App'),
),
body: Center(
child: Text('Current Version: $currentVersion'),
),
);
}
}
void main() {
runApp(MyApp());
}