Включаем и выключаем переключателем
Часть раздела Добавляем интерактивность путешествия по Flutter на Coddy. Урок 27 из 34.
Switch — это переключатель включения и выключения, который вы знаете по настройкам телефона. Он отображает логическое значение и сообщает вам, когда кто-то его переключает:
Switch(
value: _wifi,
onChanged: (bool value) {
setState(() {
_wifi = value;
});
},
)value: определяет, в каком положении он отображается: включённом для true, выключенном для false. onChanged получает новое значение, когда по переключателю нажимают.
Переключатель не перемещается сам по себе. Нажатие лишь вызывает onChanged; вы сохраняете новое значение с помощью setState, экран строится заново, и переключатель отображается в новом положении. Забудьте об этом — и переключатель будет возвращаться в исходное положение при каждом нажатии.
Задание
Легко- Сделай так, чтобы переключатель работал: сохраняй новое значение в
_darkс помощьюsetState. - Задай для
ScaffoldзначениеbackgroundColorкакColors.black, когда тёмный режим включён, и какColors.white, когда он выключен. Цвет подписи уже меняется.
Попробуйте сами
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
bool _dark = false;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(title: const Text('Settings')),
body: Center(
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
'Dark mode',
style: TextStyle(fontSize: 20, color: _dark ? Colors.white : Colors.black),
),
const SizedBox(width: 12),
Switch(
value: _dark,
onChanged: (bool value) {},
),
],
),
),
);
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Добавляем интерактивность
1Кнопки
Ваша первая кнопкаВывод в консольТекстовые и контурные кнопкиКнопки с иконкамиПлавающая кнопка действия7Переключатели и ползунки
Включаем и выключаем переключателемОтмечаем флажокВыбираем значение ползункомПотренируйтесь самостоятельно: Онлайн-компилятор Flutter