Flutterexperts

Empowering Vision with FlutterExperts' Expertise

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 or CupertinoSwitch.

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:

  1. Create a List of Options:
  • Use a Column or ListView.
  • Add a Row inside for each option.
  1. 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.
  1. Add Text Label:
  • Add a Text widget next to the radio icon to show the option.
  1. Add Selection Logic:
  • Define a State Variable (e.g., selectedOption) of type String or Int.
  • Set a GestureDetector or InkWell around the Row.
  • On Tap → Update State to set the selected option.
  1. 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:

  1. Go to the Custom Widgets Tab.
  2. 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),
        ],
      ),
    );
  }
}

  1. Add the Widget to Your Page:
  • Pass groupValue, value, and onChanged 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 or CupertinoFormRow.
  • 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 use RadioButton 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.

Leave comment

Your email address will not be published. Required fields are marked with *.