可以使用bottomNavigationBar的onTap事件重绘窗口小部件吗?

时间:2019-09-11 21:00:10

标签: flutter dart

我正在尝试学习使用BottomNavigationBar(以替换屏幕底部的按钮)。在我当前的代码中,当用户点击“后退”按钮时:

onPressed: () {
  setState(() {
     anotherObject.previousQuestion();
    },
  );
},

被触发。 previousQuestion方法更改列表中的索引,并使用新选择的列表项中的信息重绘屏幕。

当用户点击BottomNavigationBar时,是否可以使同一件事发生?

出现我的问题是因为

  • 我看到的所有示例都集中在选项卡点击以加载不同的body小部件和
  • 在MaterialApp中,BottomNavigationBar在无状态的主应用小部件中声明。我要问的是涉及更改应用程序的状态。 (上面的onPressed方法当前在有状态窗口小部件中被调用。)

1 个答案:

答案 0 :(得分:2)

  

在MaterialApp中,BottomNavigationBar在主应用小部件中声明,该控件是无状态的。我要问的是涉及更改应用程序的状态。 (上面的onPressed方法当前在有状态窗口小部件中调用。)

编辑以澄清:您可以从任何具有触发事件onTaponPressed等的窗口小部件中调用任何函数。如果窗口小部件不具有该属性,则可以可以用InkWellGestureDetector包装所述小部件。

  

当用户点击BottomNavigationBar时,是否可以使同一件事发生?

是的,可以。您几乎可以更改任何内容,只要您可以操纵Widget的状态即可。