我正在尝试编写一个Riverpod提供程序,它将返回屏幕的缩放因子,以便我可以相应地调整所有元素的大小。
final scale = ref.watch(scaleProvider);
return LinearPercentIndicator(
animation: true,
lineHeight: 15 * scale,
...
);
不幸的是,对于我的简单实现来说,MediaQuery需要一个构建上下文,而我在第一次创建全局scaleProvider时并没有这个上下文
final scaleProvider = Provider<double>((ref) {
final availableHeight = MediaQuery.of(context).size.height -
AppBar().preferredSize.height -
MediaQuery.of(context).padding.top -
MediaQuery.of(context).padding.bottom;
return availableHeight / 600.0;
});
我该怎么做?提供者是不是应该这样使用的?我该如何让缩放因子在我的所有控件中随时可用?
1条答案
按热度按时间vc9ivgsu1#
如果您在media_querydart.
size
中检查它,则在构造函数中以window.physical.size形式获取其数据,因此: