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
类中的任何位置?我不能理解如何使用它。是的,把它放在任何状态类的构建方法中。这应该行得通