当您无法访问支架时,如何在应用栏中切换/删除动作?

问题描述 投票:0回答:1

我处于以下情况:

我有一个带有应用程序栏和选项卡栏的支架,在支架的主体中,我的TabBarView带有两个有状态的小部件作为选项卡,如下所示

 @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      length: 2,
      child: Scaffold(
        appBar: AppBar(
          bottom: TabBar(
            tabs: [
              Tab(text: "First"),
              Tab(text: "Second"),
            ],
          ),
        ),
        body: TabBarView(
          children: <Widget>[
            FirstWidget(),
            SecondWidget(),
          ],
        ),
      ),
    );
  }

现在每个小部件都必须定义自己的操作以添加到应用程序栏,您如何习惯地将正确的操作设置给父支架?我曾尝试创建一个自定义的tabController并侦听事件,并在运行时交换按钮,但是似乎在其子行为和内部逻辑上赋予了Tab控制器责任。有没有一种方法可以查询支架并将操作设置为子控件中的应用栏(最终结束为浮动actionButton)(在示例中,我指的是FirstWidgetSecondWidget)。

我正在寻找类似Scaffold.of(context).setAppBarActions(...)的东西。我发现this question非常相似,但是我不同意该解决方案,因为它要求父脚手架具有与行为有关的知识(并生成)小部件,并且我希望避免这种情况。 >

我处于以下情况:我有一个带有应用程序栏和选项卡栏的支架,在支架的主体中,我的TabBarView带有两个有状态的小部件作为选项卡,如下所示@override ...

flutter mobile dart flutter-layout
1个回答
0
投票

您可以使用包提供程序来获取Scaffold.of(context).setAppBarActions(...)之类的功能。

© www.soinside.com 2019 - 2024. All rights reserved.