#flutter #checkbox #tile
#трепетание #флажок #плитка
Вопрос:
Я новичок в Flutter, и я нашел довольно классный дизайн todoapp в Dribble, поэтому я хотел создать приложение. Вот такой дизайн :
Интересно, как с помощью функции обратного вызова моего флажка я мог бы изменить цвет текстовой части плитки на этот синий. В настоящее время моя плитка представляет собой строку, содержащую флажок и контейнер с текстом. Поэтому я хотел бы, чтобы, когда я нажимаю на флажок, цвет фона моего контейнера становился синим. Я понятия не имею, как это сделать. Если у вас есть какие-то идеи, пожалуйста, скажите мне.
Ответ №1:
Приложения Flutter работают с состояниями приложения, эти состояния содержат информацию об экранах, на которые нажимает приложение.
Что вам нужно сделать, это обновить состояние вашего текущего виджета и изменить значения, которые устанавливают для этого фона цвет X.
Здесь у вас есть несколько документов об управлении состоянием: https://flutter.dev/docs/development/data-and-backend/state-mgmt/options , я действительно рекомендую новичкам начать с метода setState, как самого простого.
Кроме того, если вы не знаете, как управлять состояниями, я действительно рекомендую ознакомиться с документами, чтобы понять, как работает виджет и как он создается поверх приложений flutter: https://flutter.dev/docs/development/ui/widgets-intro
Ответ №2:
Ну, мне просто нужно было поместить это в свойство color моего контейнера, зная, что IsChecked имеет значение true при нажатии на мой флажок.
child: Container(
height: 50,
decoration: BoxDecoration(
borderRadius : BorderRadius.circular(15),
color: widget.isChecked ? Color(0xFF2765f9) : Color(0xFF292E3C),