它没有更新我的小部件。如果我点击开关打开 _darkMode 开关总是向后移动(不改变)...
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class SettingsScreen extends StatefulWidget {
const SettingsScreen({Key? key}) : super(key: key);
@override
_SettingsScreenState createState() => _SettingsScreenState();
}
class _SettingsScreenState extends State<SettingsScreen> {
@override
Widget build(BuildContext context) {
bool _darkMode = false;
return Container(
child: ListView(
children: [
ListTile(
title: const Text('Lights'),
trailing: CupertinoSwitch(
value: _darkMode,
onChanged: (bool value) {
setState(() {
_darkMode = value;
print('DarkMode: $_darkMode');
});
},
),
),
],
));
} }
答案 0 :(得分:2)
_darkMode 必须是小部件状态中的字段。将它移到构建方法之外:
class _SettingsScreenState extends State<SettingsScreen> {
bool _darkMode = false;
@override
Widget build(BuildContext context) {