flutter - Flutter:从 FloatingActionButton 重新构建小部件
问题描述
我有一个Scaffold
带有BottomNavigationBar
. 根据栏中单击的图标,我正在切换body
脚手架。在某些情况下,我想显示一个FloatingActionButton
. getFloatingActionButton
该按钮由我为各个小部件实现的静态方法检索(请参阅下面的代码摘录部分)。
问题
该按钮应推动具有用于创建条目的表单的 Scaffold(我们称之为 add-reminder-scaffold)。以提醒为例。问题是,一旦弹出“添加提醒脚手架”,显示提醒列表的底层小部件就不会重建。因此我没有看到最新的条目。
我尝试使用提供者在保存表单并弹出“添加提醒脚手架”并且底层“提醒列表小部件”收听此内容后通知其听众。不工作。我尝试将其放入FloatingActionButton
提供者提供的变量中,并让根脚手架监听更改。也不行。
我总是遇到一些例外情况,例如setState()
在不适当的情况下调用或无法正确使用提供程序。
这样做的正确方法是什么?
代码摘录
主脚手架是这样构建的:
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
if (_selectedIndex == 2) {
_floatingButton = LogScreen.getFloatingActionButton(context);
} else if (_selectedIndex == 3) {
_floatingButton = ReminderOverviewScaffold.getFloatingActionButton(context);
} else {
_floatingButton = null;
}
});
}
…
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: …,
body: _widgetOptions.elementAt(_selectedIndex),
floatingActionButton: _floatingButton,
bottomNavigationBar: _getBottomNavBar(context));
}
解决方案
推荐阅读
- python - ValueError:无法将大小为 261715968 的数组重塑为形状 (9466,9216)
- hash - 块哈希生成的动态和添加到比特币交易中使用的块链
- django - / 'dict' 对象的 AttributeError 没有属性 '_mptt_meta'
- entity-framework-core - 多对多索引创建约定
- allennlp - 您可以编写自己的自定义 allennlp 命令吗?
- react-native - 如何在 Reanimated V2 中访问手势状态 UNDETERMINED?
- python-3.x - 使用类函数写入 .txt 文件时,换行符无法使用“\n”
- hybris - 更改 hybris 后台高级搜索中附加属性选择器的位置
- java - 如何使用aws java异步客户端耗尽所有结果
- objective-c - 当网络发生变化时,文件下载有时会从头开始(AFURLSessionManager)