Backdrop filter lets you blur or change the background behind a widget. It helps create cool see-through effects.
Backdrop filter (blur effects) in Flutter
BackdropFilter( filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0), child: Widget(), )
The filter property takes an ImageFilter object, usually a blur.
The child is the widget that appears on top of the blurred background.
BackdropFilter( filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0), child: Text('Blurred background'), )
BackdropFilter( filter: ImageFilter.blur(sigmaX: 10.0, sigmaY: 10.0), child: Container(color: Colors.white.withOpacity(0.2)), )
This app shows an owl image as background. On top, a semi-transparent white box with blurred background behind it displays the text "Blurred Background". The blur effect softens the image behind the box.
import 'dart:ui'; import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Stack( fit: StackFit.expand, children: [ Image.network( 'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl-2.jpg', fit: BoxFit.cover, ), Center( child: ClipRect( child: BackdropFilter( filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0), child: Container( alignment: Alignment.center, width: 250, height: 100, color: Colors.white.withOpacity(0.3), child: const Text( 'Blurred Background', style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold), ), ), ), ), ), ], ), ), ); } }
Always wrap BackdropFilter with ClipRect to limit the blur area.
Blurred effect works only if there is something behind the widget to blur.
Use Colors.white.withOpacity() or similar to create frosted glass style overlays.
BackdropFilter applies blur or other effects to the background behind a widget.
Use ImageFilter.blur with sigmaX and sigmaY to control blur strength.
Wrap with ClipRect to confine the blur area and combine with translucent colors for nice UI effects.
Practice
BackdropFilter widget do in Flutter?Solution
Step 1: Understand BackdropFilter purpose
The BackdropFilter widget applies visual effects like blur to the background behind its child, not the child itself.Step 2: Compare options
Only Applies a blur or visual effect to the background behind its child widget. correctly describes this behavior; others describe unrelated effects.Final Answer:
Applies a blur or visual effect to the background behind its child widget. -> Option AQuick Check:
BackdropFilter = Blur background [OK]
- Thinking it blurs the widget itself
- Confusing with shadow or color changes
- Assuming it animates size
BackdropFilter in Flutter?Solution
Step 1: Recall BackdropFilter syntax
BackdropFilter requires a filter parameter with ImageFilter.blur specifying sigmaX and sigmaY as doubles.Step 2: Check options for correct syntax
Only BackdropFilter(filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0), child: Widget()) uses correct parameter names and types. Others use invalid or missing parameters.Final Answer:
BackdropFilter(filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0), child: Widget()) -> Option BQuick Check:
Use filter: ImageFilter.blur with sigmaX/Y [OK]
- Using wrong parameter names like blur or effect
- Not specifying both sigmaX and sigmaY
- Passing integers instead of doubles
ClipRect(
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 10.0, sigmaY: 10.0),
child: Container(
color: Colors.black.withOpacity(0.2),
width: 100,
height: 100,
),
),
)Solution
Step 1: Understand ClipRect and BackdropFilter interaction
ClipRect confines the blur effect to the 100x100 area of the Container child.Step 2: Analyze Container color and blur
The Container has a translucent black color, so the blurred background will show behind it with a dark overlay.Final Answer:
A 100x100 area with a blurred background and a translucent black overlay. -> Option DQuick Check:
ClipRect + BackdropFilter = confined blur + translucent overlay [OK]
- Thinking blur applies outside ClipRect bounds
- Expecting solid color without transparency
- Assuming no blur because Container has color
BackdropFilter(
filter: ImageFilter.blur(sigmaX: 5.0),
child: Container(
color: Colors.white.withOpacity(0.5),
),
)Solution
Step 1: Check ImageFilter.blur parameters
ImageFilter.blur allows sigmaX without sigmaY; sigmaY defaults to sigmaX, so no error here.Step 2: Understand BackdropFilter usage
BackdropFilter needs to be wrapped in ClipRect to confine the blur area; otherwise, it may cause rendering issues.Final Answer:
BackdropFilter must be wrapped in ClipRect to work properly. -> Option AQuick Check:
BackdropFilter requires ClipRect wrapper [OK]
- Assuming sigmaY is mandatory
- Thinking opacity must be 1.0
- Believing sigmaX and sigmaY must be integers
Solution
Step 1: Use ClipRect to confine blur area
ClipRect limits the blur effect to the 200x200 area, preventing blur outside bounds.Step 2: Place BackdropFilter with blur filter and translucent Container
BackdropFilter applies blur behind the translucent white Container, creating frosted glass effect.Step 3: Check widget order
BackdropFilter must be child of ClipRect, and Container must be child of BackdropFilter for correct layering.Final Answer:
ClipRect(child: BackdropFilter(filter: ImageFilter.blur(sigmaX: 8.0, sigmaY: 8.0), child: Container(width: 200, height: 200, color: Colors.white.withOpacity(0.3)))) -> Option CQuick Check:
ClipRect + BackdropFilter + translucent Container = frosted glass [OK]
- Omitting ClipRect causing blur overflow
- Placing BackdropFilter inside Container child
- Using ClipOval instead of ClipRect for rectangular blur
Ready to prove it?
Pass the test and this pattern moves unknown
