use_dedicated_media_query_methods
v0.1.0 Warning Fix Widget Best Practices
This rule flags calls like MediaQuery.of(context).size and suggests using the dedicated aspect methods like MediaQuery.sizeOf(context) instead. The dedicated methods subscribe only to the specific property you need, so your widget does not rebuild when unrelated MediaQuery properties change.
Why use this rule
Section titled “Why use this rule”MediaQuery.of(context) subscribes to the entire MediaQueryData. That means your widget rebuilds whenever any media property changes — orientation, padding, text scale, view insets, and more. If you only need size, using MediaQuery.sizeOf(context) ensures rebuilds happen only when the size actually changes. This is a significant performance win for widgets that appear in frequently-rebuilt subtrees.
See also: MediaQuery
class MyWidget extends StatelessWidget { @override Widget build(BuildContext context) { // Subscribes to ALL MediaQuery changes final size = MediaQuery.of(context).size; final padding = MediaQuery.of(context).padding; return SizedBox(width: size.width, height: size.height - padding.top); }}class MyWidget extends StatelessWidget { @override Widget build(BuildContext context) { // Only rebuilds when size or padding changes final size = MediaQuery.sizeOf(context); final padding = MediaQuery.paddingOf(context); return SizedBox(width: size.width, height: size.height - padding.top); }}Configuration
Section titled “Configuration”To disable this rule:
plugins: many_lints: diagnostics: use_dedicated_media_query_methods: false