Этот код отвечает за переключение со светлой темы на темную. Последняя строка кода отвечает за варианты переключения с темной темы на светлую: белая кнопка и скользящий желтый цвет.
Подскажите, как мне добиться, чтобы на светлом фоне эта кнопка была черной и скользила с желтым сопровождением.
Так же буду признателен, если подскажете, как сделать ширину этой кнопки такой же, как у двух верхних.
class ChangeThemeButtonWidget extends StatelessWidget {
const ChangeThemeButtonWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final themeProvider = Provider.of<ThemeProvider>(context);
return Switch.adaptive(
value: themeProvider.isDarkMode,
onChanged: (value) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setBool('isDarkMode', value);
final provider = Provider.of<ThemeProvider>(context, listen: false);
provider.toggleTheme(value);
},
activeColor: themeProvider.isDarkMode ? Colors.white : Colors.yellow,
);
}
}
@ Чарльз Ростэн Да, я хочу, чтобы ширина кнопки «Переключить» была такой же, как у кнопок «Избранное» и «Мои устройства».
Я думаю, проблема в том, что вы ожидаете, что и левая позиция, и правая позиция будут в активном состоянии.
Но переключатель работает таким образом, что левое положение — это положение inactive
, а правое — это положение active
.
Вам нужно установить inactiveThumbColor
как черный для светлого режима.
activeColor: themeProvider.isDarkMode ? Colors.white : Colors.yellow,
inactiveThumbColor: themeProvider.isDarkMode ? Colors.yellow : Colors.black,
У меня inactiveColor подчеркивается красным. Можно ли как-то исправить эту проблему?
Я понял свою проблему. Мне нужен был inactiveThumbColor. Благодарю вас!
@ CharlesRostaing Не могли бы вы сказать мне, как настроить ширину и высоту этой кнопки?
Switch
не настраиваются по высоте и ширине
Я не уверен, что вы имеете в виду под
the width of this button the same as the top two
. Вы хотите, чтобы ширина кнопкиSwitch
была такой же, как у кнопокFavorite
иMy devices
? Я не думаю, что вы можете изменить ширинуSwitch