Radio Buttons in flutter.

Hello guys,

In this session we will see how to add radio buttons here,

See as follows for the process:

Take a var as below before going.

String radio_value="Instant";

The below is the format for the butto which shows one...

Row(
  children: [ 
    Flexible(
      flex: 1,
      child: Container(
        margin: EdgeInsets.all(0.5),
        decoration: BoxDecoration(
          border: Border.all(width: 0.5,color: (radio_value=="Instant") ? (Colors.green): (Colors.grey)),
          borderRadius: BorderRadius.circular(10),
          color:(radio_value=="Instant") ? (ColorConstant.lightgreenbg): (Colors.white),

        ),
        child: Row(
          children: [
            Radio(
              activeColor: Colors.green,fillColor: MaterialStatePropertyAll(Colors.green),
                value: "Instant", groupValue: radio_value , onChanged: (index) {
              setState(() {
                radio_value="Instant";
              });
            }),
            Expanded(
                child:
                RichText(
                  text: TextSpan(
                      text: 'Instant \n',
                      style: GoogleFonts.ubuntu(
                          textStyle: TextStyle(overflow: TextOverflow.ellipsis),
                          fontWeight: FontWeight.bold,fontSize: 12,
                          color:(radio_value=="Instant") ? (ColorConstant.blueAE): (Colors.grey)),

                      /*defining default style is optional */
                      children: <TextSpan>[
                        TextSpan(
                            text: '19 min',
                            style: GoogleFonts.ubuntu(
                                textStyle: TextStyle(overflow: TextOverflow.ellipsis),
                                fontWeight: FontWeight.bold,fontSize: 10,
                                color:(radio_value=="Instant") ? (ColorConstant.greenA700): (Colors.grey)),
                             ),
                      ]),
                ),
            )
          ],
        ),
      ),
    ),],
    Flexible(
      flex: 1,//Instant, General, Self_Pickup
      child: Container(
        margin: EdgeInsets.all(0.5),
        decoration: BoxDecoration(
          border: Border.all(width: 0.5,color: (radio_value=="General") ? (Colors.green): (Colors.grey)),
          borderRadius: BorderRadius.circular(10),
          color: (radio_value=="General") ? (ColorConstant.lightgreenbg): (Colors.white),

        ),
        child: Row(
          children: [
            Radio(activeColor: Colors.green,fillColor: MaterialStatePropertyAll(Colors.green),
                value: "General", groupValue: radio_value,onChanged: (index) {
              setState(() {
                radio_value="General";
              });
            }),
            Container( width:55,
                child:  RichText(
                  text: TextSpan(
                      text: 'General \n',
                      style: GoogleFonts.ubuntu(
                          textStyle: TextStyle(overflow: TextOverflow.ellipsis),
                          fontWeight: FontWeight.bold,fontSize: 12,
                          color:(radio_value=="General") ? (ColorConstant.blueAE): (Colors.grey)),

                      /*defining default style is optional */
                      children: <TextSpan>[
                        TextSpan(
                            text: 'Tomorrow',
                            style: GoogleFonts.ubuntu(
                                textStyle: TextStyle(overflow: TextOverflow.ellipsis),
                                color: (radio_value=="General") ? (ColorConstant.greenA700): (Colors.grey),
                                fontWeight: FontWeight.bold,
                                fontSize: 10)),
                      ]),
                ),
            ),
          ],
        ),
      ),
    ),
    Flexible(
      flex: 1,
      child: Container(
        margin: EdgeInsets.all(0.5),
        decoration: BoxDecoration(
          border: Border.all(width: 0.5,color: (radio_value=="Self_Pickup") ? (Colors.green): (Colors.grey)),
          borderRadius: BorderRadius.circular(10),
          color: (radio_value=="Self_Pickup") ? (ColorConstant.lightgreenbg): (Colors.white),

        ),
        child: Row(
          children: [
            Radio(activeColor: Colors.green,fillColor: MaterialStatePropertyAll(Colors.green),
                value: "Self_Pickup", groupValue: radio_value, onChanged: (index) {
              setState(() {
                radio_value="Self_Pickup";
              });
            }),
            Container(width:55,
                child:
                RichText(
                  text: TextSpan(
                      text: 'Self pickup\n',
                      style:  GoogleFonts.ubuntu(
                          textStyle: TextStyle(overflow: TextOverflow.ellipsis),
                          color: (radio_value=="Self_Pickup") ? (ColorConstant.blueAE): (Colors.grey),
                          fontWeight: FontWeight.bold,
                          fontSize: 10),
                      /*defining default style is optional */
                      children: <TextSpan>[
                        TextSpan(
                            text: 'Visit Store Free',
                            style:  GoogleFonts.ubuntu(
                                textStyle: TextStyle(overflow: TextOverflow.ellipsis),
                                color: (radio_value=="Self_Pickup") ? (ColorConstant.greenA700): (Colors.grey),
                                fontWeight: FontWeight.bold,
                                fontSize: 10)),
                      ]),
                ),
            )
          ],
        ),
      ),
    ), 
),

Thank you...

Tagged:
Sign In or Register to comment.