CupertinoRadio Widget in FlutterFlow

FlutterFlow is a powerful low-code platform that allows you to build Flutter applications visually — without writing traditional Flutter code. While FlutterFlow is known for its Material design components, it also supports Cupertino (iOS-style) widgets, like the CupertinoRadio
, giving you more design flexibility.
In this blog, we’ll explore what the CupertinoRadio
widget is, how to use it in FlutterFlow, and when to choose it over the standard Material-style radio buttons.
What is CupertinoRadio?

The CupertinoRadio
widget is part of Flutter’s Cupertino design system, which replicates the native iOS look and feel. It functions similarly to a traditional radio button, allowing users to select a single item from a list of options. The key difference is in the styling — it’s built to look and behave like a native iOS component.
In FlutterFlow, the CupertinoRadio
widget gives your app a native iOS experience while maintaining the benefits of low-code development.
When Should You Use CupertinoRadio in FlutterFlow?
Use CupertinoRadio
when:
- You’re designing an app specifically for iOS.
- You want to give your users a native Apple-style UI.
- You’re using other Cupertino elements like
CupertinoNavigationBar
orCupertinoSwitch
.
How to Use CupertinoRadio in FlutterFlow?
Currently, FlutterFlow doesn’t have a direct drag-and-drop CupertinoRadio
widget like in Flutter code. However, you can mimic its functionality by using the Custom Widget feature, or by creating iOS-style radio buttons using standard widgets + logic.
Here are two methods to implement Cupertino-style radio buttons in FlutterFlow:
Method 1: Using FlutterFlow Widgets (Visual No-Code)
Step-by-Step Guide:
- Create a List of Options:
- Use a
Column
orListView
. - Add a
Row
inside for each option.
- Add a Circle Indicator:
- Use a
Container
with a border to represent the radio circle. - Use conditional visibility to show a filled circle inside if selected.
- Add Text Label:
- Add a
Text
widget next to the radio icon to show the option.
- Add Selection Logic:
- Define a
State Variable
(e.g.,selectedOption
) of type String or Int. - Set a
GestureDetector
orInkWell
around theRow
. - On Tap →
Update State
to set the selected option.
- Dynamic Styling:
- Change the container color or add an inner circle when it matches the selected option.
💡 This method visually mimics CupertinoRadio and works well in FlutterFlow’s no-code interface.
Method 2: Using a Custom Widget (for Exact iOS Look)

If you want to use the actual Flutter CupertinoRadio
widget inside FlutterFlow:
Step-by-Step:
- Go to the
Custom Widgets
Tab. - Create a New Custom Widget
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class CustomCupertinoRadio extends StatefulWidget {
final String groupValue;
final String value;
final Function(String) onChanged;
const CustomCupertinoRadio({
required this.groupValue,
required this.value,
required this.onChanged,
});
@override
_CustomCupertinoRadioState createState() => _CustomCupertinoRadioState();
}
class _CustomCupertinoRadioState extends State<CustomCupertinoRadio> {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => widget.onChanged(widget.value),
child: Row(
children: [
CupertinoRadio<String>(
value: widget.value,
groupValue: widget.groupValue,
onChanged: (String? val) {
if (val != null) {
widget.onChanged(val);
}
},
),
SizedBox(width: 8),
Text(widget.value),
],
),
);
}
}
- Add the Widget to Your Page:
- Pass
groupValue
,value
, andonChanged
as parameters. - Bind them to FlutterFlow
State Variables
to manage selection.
✅ This gives you a pixel-perfect native iOS radio control inside FlutterFlow.
Styling Tips
- Match your radio buttons with Cupertino themes (light backgrounds, clean spacing).
- Combine them with other Cupertino elements like
CupertinoListTile
orCupertinoFormRow
. - Use minimalist fonts like San Francisco to enhance the iOS feel.
Important Considerations
CupertinoRadio
is great for iOS-themed apps. If you are targeting Android, it’s better to useRadioButton
or conditionally render based on platform.- FlutterFlow doesn’t support all native Flutter widgets visually, but Custom Widgets give you full power.
Conclusion
The CupertinoRadio
widget is a great way to bring native iOS design elements into your FlutterFlow projects. While it may require a bit of extra work compared to drag-and-drop widgets, the payoff is a more polished and platform-specific UI.
Whether you simulate the look using FlutterFlow’s visual tools or integrate a custom widget, CupertinoRadio lets you build an intuitive and stylish iOS experience — right inside FlutterFlow.
Feel free to connect with us:
And read more articles from FlutterDevs.com.
FlutterDevs team of Flutter developers to build high-quality and functionally-rich apps. Hire Flutterflow developer for your cross-platform Flutter mobile app project on an hourly or full-time basis as per your requirement! For any flutter-related queries, you can connect with us on Facebook, GitHub, Twitter, and LinkedIn.
We welcome feedback and hope that you share what you’re working on using #FlutterDevs. We truly enjoy seeing how you use Flutter to build beautiful, interactive web experiences.
