это очень просто, как только вы получите logi c.
На практике родительский ("истинный" виджет, который вы вызываете), т.е.
class ParentWidget extends StatefulWidget {
@override
_ParentWidgetState createState() => _ParentWidgetState();
}
является тот, который вы вызываете где угодно и когда угодно в остальной части кода.
Поскольку это виджет Stateful , это означает, что он заявил (для простоты он будет управлять любые изменения в пользовательском интерфейсе). Произойдет любое изменение, он изменит свое состояние, поэтому этот код:
class _ParentWidgetState extends State<ParentWidget> {
bool _active = false;
void _handleTapboxChanged(bool newValue) {
setState(() {
_active = newValue;
});
}
@override
Widget build(BuildContext context) {
return Container(
child: TapboxB(
active: _active,
onChanged: _handleTapboxChanged,
),
);
}
}
В любом случае, как только вы используете виджет с отслеживанием состояния, вы меняете его состояние всякий раз, когда хотите вызвать функцию
setState(() {
oldValue= newValue;
});
Он перестроит весь виджет, изменив то, что вам нужно (например, тексты, изображения, виджеты и т. Д.). неправильным образом , рассматривайте его как особый виджет, который может изменять свой пользовательский интерфейс в течение времени.