Signal strength indicator widget
Customizable signal strength indicator widget for Flutter.
Contents
Requirements
Dart SDK: >=3.0.0
Flutter: >=3.10.0
Features
See the WEB DEMO .
Two visual variants:
Bars — classic stacked bars with optional rounded corners, bevelled style, and spacing
Sector — quarter-circle arc segments with optional rounded caps
Installation
Add this to your pubspec.yaml:
dependencies:
signal_strength_indicator: ^0.5.0
Then run:
flutter pub get
Import in your Dart code:
import 'package:signal_strength_indicator/signal_strength_indicator.dart' ;
Usage
Bars
SignalStrengthIndicator .bars (
value: 0.6 ,
size: 40 ,
barCount: 4 ,
spacing: 0.2 ,
activeColor: Colors .green,
inactiveColor: Colors .grey.shade300,
)
Sector
SignalStrengthIndicator .sector (
value: 0.6 ,
size: 40 ,
barCount: 4 ,
spacing: 0.3 ,
rounded: true ,
)
Custom value range
SignalStrengthIndicator .bars (
value: -65 ,
minValue: -100 ,
maxValue: -40 ,
size: 40 ,
)
Threshold-based coloring with levels
levels is a Map<num, Color> mapping absolute thresholds to colors.
A bar/segment becomes active and uses the color of the highest threshold
that is <= the current value.
SignalStrengthIndicator .bars (
value: signalValue,
minValue: 0 ,
maxValue: 100 ,
size: 40 ,
barCount: 3 ,
levels: {
33 : Colors .red,
66 : Colors .orange,
100 : Colors .green,
},
)
Rounded corners and bevelled bars
SignalStrengthIndicator .bars (
value: 0.7 ,
size: 40 ,
radius: const Radius .circular (4 ),
)
SignalStrengthIndicator .bars (
value: 0.7 ,
size: 40 ,
bevelled: true ,
)
Parameters
Common parameters (bars and sector)
Parameter
Type
Default
Description
value
num
required
Current signal value
minValue
num?
0.0
Minimum value of the range
maxValue
num?
1.0
Maximum value of the range
size
double?
icon theme size
Width and height of the widget
barCount
int
3
Number of bars/segments
activeColor
Color?
green
Color of active bars (when no levels)
inactiveColor
Color?
light green
Color of inactive bars
levels
Map<num, Color>?
—
Threshold-to-color mapping (absolute values)
spacing
double
0.2 / 0.3
Gap between bars as a fraction of bar size
margin
EdgeInsets
zero
Outer margin around the widget
Bars-only parameters
Parameter
Type
Default
Description
radius
Radius?
Radius.zero
Corner radius of each bar
bevelled
bool
false
Draw bars with an angled top edge
Sector-only parameters
Parameter
Type
Default
Description
rounded
bool
false
Use rounded arc cap ends
Feature requests and bugs
Please file feature requests and bugs at the issue tracker .