孩子体内的状况没有更新屏幕

时间:2019-09-07 14:53:14

标签: flutter flutter-layout

首先,我分离了所有小部件以获得更清晰的代码结构。我准备了一个条件,可以根据它的值更改布局。如果为true,则显示此内容;如果为false,则显示此内容。

我debugPrint布尔值,它表明只要检测到手势,该值就会被更新。但是屏幕在发生时不会更新。

条件已在我的homeWidget文件中设置。

AnimatedContainer(
                duration: Duration(seconds: 1),
                child: isScrolled
                    ? Container(
                        child: Column(
                          children: <Widget>[
                            Flexible(
                              flex: 2,
                              child: StoriesWidget(),
                            ),
                            Flexible(
                              flex: 5,
                              child: PostWidget(),
                            )
                          ],
                        ),
                      )
                    : Container(
                        color: Colors.white,
                        child: Column(
                          children: <Widget>[
                            Flexible(flex: 3, child: ProfileWidget()),
                            Flexible(flex: 5, child: StoriesWidget()),
                            Flexible(
                              flex: 10,
                              child: Container(
                                width: double.infinity,
                                height: double.infinity,
                                child: PostWidget(),
                              ),
                            ),
                          ],
                        ),
                      ))));

值的更新发生在名为postWidget的单独Widget中

 @override
  Widget build(BuildContext context) {
    return GestureDetector(
        onTap: () => profileAction(),

  profileAction() {
    debugPrint("$isScrolled");
    setState(() {
      isScrolled = true;
    });
  }

0 个答案:

没有答案