Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何从子窗口小部件调用setState*_Flutter_Dart_State - Fatal编程技术网

Flutter 如何从子窗口小部件调用setState*

Flutter 如何从子窗口小部件调用setState*,flutter,dart,state,Flutter,Dart,State,我有带3个选项卡的DefaultTabController。其中一个选项卡是列表。我需要的是,当点击一个列表项时,其他小部件上的当前列表会发生变化。我该怎么做?非常感谢。选项卡状态类 class StationState extends State<Stations> { Widget secondWidget; @override Widget build(BuildContext context) { secondWidget = Styles(this);

我有带3个选项卡的DefaultTabController。其中一个选项卡是列表。我需要的是,当点击一个列表项时,其他小部件上的当前列表会发生变化。我该怎么做?非常感谢。选项卡状态类

class StationState extends State<Stations> {
  Widget secondWidget;
  @override
  Widget build(BuildContext context) {
    secondWidget = Styles(this);
    return DefaultTabController(
      length: 3,
      child: Scaffold(
        backgroundColor: Color(0xFF000000),
        appBar: AppBar(
          title: HeaderLogo(),
          backgroundColor: Color(0xFF000000),
          bottom: TabBar(
            indicatorColor: Colors.white,
            tabs: [
              Tab(
                text: 'Favorites',
              ),
              Tab(
                text: 'Genres',
              ),
              Tab(
                text: 'Networks',
              ),
            ],
          ),
        ),
        body: TabBarView(children: [
          Favorites(),
          secondWidget,
          Networks(),
        ]),
      ),
    );

    ;
  }
}
class StationState扩展状态{
小部件二次小部件;
@凌驾
小部件构建(构建上下文){
secondWidget=样式(此);
返回DefaultTabController(
长度:3,
孩子:脚手架(
背景颜色:颜色(0xFF000000),
appBar:appBar(
标题:HeaderLogo(),
背景颜色:颜色(0xFF000000),
底部:选项卡栏(
指示颜色:颜色。白色,
选项卡:[
标签(
文本:“收藏夹”,
),
标签(
文本:“体裁”,
),
标签(
文本:“网络”,
),
],
),
),
正文:选项卡视图(子项:[
收藏夹(),
第二件,
网络(),
]),
),
);
;
}
}

请添加您的代码以更好地帮助您

但是您可以将回调传递给列表项,当单击列表项时,将触发回调

像这样的

return ListItem(
    onPressed: () {
        setState((){
            //Do what you need on the parent
        });
    }
);

问题是父级(DefaultTabController)和子级(ListView)位于不同的类中。您需要提供有关问题的更多详细信息,然后我更改了问题。我需要通过单击favorites()小部件来更改TabBarView子项