Flutter 基于颤振中的当前状态显示小部件

Flutter 基于颤振中的当前状态显示小部件,flutter,flutter-layout,Flutter,Flutter Layout,我的基本意图是根据我的当前状态显示一个小部件。比方说,当用户单击按钮时,我使用setState()方法将currentPage的值设置为2 onTabChangedListener: (position, title, color) { setState(() { currentPage = position; ... 当它是2时,我想显示以下小部件,而不是当前显示的小部件。我尝试了if/else案例,但似乎不是这样。我也讨论了这个和这个,但我不清楚执行情况。我

我的基本意图是根据我的当前状态显示一个小部件。比方说,当用户单击按钮时,我使用
setState()
方法将
currentPage
的值设置为
2

onTabChangedListener: (position, title, color) {
       setState(() {
         currentPage = position;
...
当它是
2
时,我想显示以下小部件,而不是当前显示的小部件。我尝试了
if/else
案例,但似乎不是这样。我也讨论了这个和这个,但我不清楚执行情况。我了解有状态小部件的工作原理——只需要一个与我的问题类似的代码示例

// Widget I want to display when currentPage state is changed to 2.

  Widget _buildContent() {
    return Positioned(
      bottom: 50,
      left: 25,
      right: 25,
      child: Container(
        color: Theme.of(context).backgroundColor,
        child: Column(
          children: <Widget>[
//            _buildTextField("Some Text"),
            _buildLoginButton(),
            SizedBox(height: 20),
            RichText(
              text: TextSpan(
                text: "Some Text",
                style: TextStyle(
                  fontSize: 10.5,
                  fontWeight: FontWeight.w300,
                  letterSpacing: 1,
                ),
                children: [
                  TextSpan(
                    text: "Another Text",
                    style: TextStyle(
                      decoration: TextDecoration.underline,
                    ),
                  ),
                ],
              ),
            )
          ],
        ),
      ),
    );
  }
//当currentPage状态更改为2时,我要显示的小部件。
小部件_buildContent(){
返回定位(
底数:50,
左:25,
右:25,,
子:容器(
颜色:主题。背景色,
子:列(
儿童:[
//_buildTextField(“某些文本”),
_buildLoginButton(),
尺寸箱(高度:20),
RichText(
text:TextSpan(
文本:“一些文本”,
样式:TextStyle(
字体大小:10.5,
fontWeight:fontWeight.w300,
字母间距:1,
),
儿童:[
TextSpan(
文本:“另一文本”,
样式:TextStyle(
装饰:textEdition.underline,
),
),
],
),
)
],
),
),
);
}

注意:我当前代码的整页是

这是我在代码中使用的东西。使用
Offstage
小部件将所有要显示的页面放入
堆栈中<如果后台条件为真,则代码>后台
小部件将隐藏(使其为“后台”)

堆栈(
儿童:[
台下(
后台:0!=\u currentBottomBarIndex,
子项:PageOne(),
),
台下(
后台:1!=\u currentBottomBarIndex,
child:PageTwo(),
),
台下(
后台:2!=\u currentBottomBarIndex,
孩子:第三页(),
),
台下(
后台:3!=\u currentBottomBarIndex,
child:PageFour(),
),
],
),

谢谢。这很有道理。但是,我应该把这个堆栈放在哪里,如何调用/使用它?在我的
MessageScreenState
类中的任何位置?我不能理解如何使用它。是的,把它放在任何状态类的构建方法中。这应该行得通