Why This Happens
In Flutter, a RenderBox with no size (zero width or height) cannot respond to touch events. This happens when a GestureDetector wraps a widget that has no intrinsic size and no constraints to give it one. Provide explicit dimensions or ensure the child has a visible size.
The Problem
GestureDetector(
onTap: () => print('tapped'),
child: Container(), // No size!
)The Fix
GestureDetector(
onTap: () => print('tapped'),
child: Container(
width: 100,
height: 100,
color: Colors.blue,
),
)Step-by-Step Fix
- 1
Identify the error
Look at the error about hitting a render box with no size. A tappable widget has zero dimensions.
- 2
Find the cause
Check if the GestureDetector's child has no explicit size and is in an unconstrained layout.
- 3
Apply the fix
Give the child widget explicit width and height, or ensure the parent provides size constraints.
Bugsly catches this automatically
Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.
Try Bugsly free