main.dart
:
void main() {
SharedPreferences.getInstance().then((prefs) {
runApp(MyApp(prefs: prefs));
});
}
class MainScreen extends StatefulWidget {
MainScreen({Key key, this.prefs}) : super(key: key);
final SharedPreferences prefs;
...
从…起
MainScreen
我把pref传递给其他页面,所以我在开始的时候在我的应用程序上加载一次。
这是另一页:
class MyState extends State<TeamsPage> {
List _teams = [];
SharedPreferences _prefs = null;
@override
void initState() {
_prefs = widget.data["prefs"];
_getTeams();
}
_getTeams() async {
if (_prefs.containsKey("teams") == null || _prefs.get('teams') == null) {
_teams = [
{"name": "Team 1", "avatar": "assets/images/draw.jpg"},
{"name": "Team 2", "avatar": "assets/images/draw1.jpg"},
{"name": "Team 3", "avatar": "assets/images/draw2.jpg"},
{"name": "Team 4", "avatar": "assets/images/draw3.jpg"}
];
_prefs.setString("teams", json.encode(_teams));
} else {
_teams = json.decode(_prefs.get('teams'));
}
}