标签栏,每个标签具有唯一操作

时间:2019-12-18 15:47:34

标签: flutter dart

我有一个带有两个标签的TabbarTabbar有自己的Appbar,两个标签都使用。如何在每个选项卡的有状态小部件内使排序按钮运行自定义(设置状态)功能?或者,每个选项卡是否可以具有自己唯一的Appbar?我不确定这里最好的方法是什么。

enter image description here

其中一个标签内的示例方法:

class _TabAState extends State<TabA> {
  void sort() {
    setState(() {
    myList.sort((a, b) => b.dueDate.compareTo(a.dueDate));
    });
  }

...

排序按钮:

IconButton(
  icon: Icon(Icons.sort),
  onPressed: () => DefaultTabController.of(context).index == 0
      ? TabA.sort() // Does not work
      : TabB.sort(), // Does not work
),

1 个答案:

答案 0 :(得分:1)

关于您是否担心这种方法是最好的方法:

来自文档

  

脚手架被设计为MaterialApp的单个顶级容器,通常不需要嵌套脚手架。

基于此陈述,我建议将多个Scaffold嵌套在另一个Scaffold中可能不是一个好主意。假设您每个AppBar只能有一个Scaffold,这与您的担心有关,是否将AppBar嵌套在Scaffold内。

我个人不推荐来自其他 Flutter Widget类的静态或非静态方法(例如,用作您的独立屏幕的小部件应用程序)来执行应用程序的业务逻辑。也许,您可以继续使用诸如ScopedModel之类的小部件以及诸如BloC,Redux或Mobx之类的架构模式来实现应用程序的业务逻辑。

进一步阅读: