Flutter Can bottomNavigationBar';s`onTap`事件是否可用于重新绘制小部件?
我正在尝试学习使用Flutter Can bottomNavigationBar';s`onTap`事件是否可用于重新绘制小部件?,flutter,dart,Flutter,Dart,我正在尝试学习使用BottomNavigationBar(替换屏幕底部的按钮)。在我当前的代码中,当用户点击后退按钮时: onPressed: () { setState(() { anotherObject.previousQuestion(); }, ); }, 被触发。previousQuestion方法更改列表中的索引,并使用新选择的列表项中的信息重新绘制屏幕 当用户点击底部导航栏时,我能让同样的事情发生吗 我的问题是因为 我看到的所有示例都集中在点击选项卡
BottomNavigationBar
(替换屏幕底部的按钮)。在我当前的代码中,当用户点击后退按钮时:
onPressed: () {
setState(() {
anotherObject.previousQuestion();
},
);
},
被触发。previousQuestion
方法更改列表中的索引,并使用新选择的列表项中的信息重新绘制屏幕
当用户点击底部导航栏时,我能让同样的事情发生吗
我的问题是因为
- 我看到的所有示例都集中在点击选项卡以加载不同的
widget和body
- 在MaterialApp中,BottomNavigationBar在主应用程序小部件中声明,它是无状态的。我要问的是改变应用程序的状态。(上面的
方法当前在有状态小部件中调用。)onPressed
onTap
、onPressed
等从任何小部件调用任何函数。例如,如果您的小部件没有该属性,您可以使用InkWell
或GestureDetector
包装所述小部件
当用户点击底部导航栏时,我能让同样的事情发生吗
是的,你可以。只要可以操纵小部件的状态,您几乎可以更改任何内容 我不确定如何从声明BottomNavigationBar的无状态小部件中调用
StatefulWidget
中的方法。或者,如何在StatefulWidget'中创建bottomNavigationBar
(应该始终可见),即除
Home`小部件之外的其他内容。。。希望这是有意义的:-)P.S。在你的回复后出现在“相关”栏。我编辑了我的答案。我并不特别喜欢这些答案,我认为这些答案太复杂了,无法实现你想要的目标。一种更简单的方法是只使用无状态小部件,并通过provider
或scoped\u model
管理状态。