Flutter AlertDialog嵌套单选框使用

效果图:


    showGeneralDialog(
        context: context,
        pageBuilder: (context, anim1, anim2) {
          return;
        },
        barrierColor: Colors.grey.withOpacity(.4),
        barrierDismissible: true,
        barrierLabel: "Tips",
        transitionDuration: Duration(milliseconds: 400),
        transitionBuilder: (context, anim1, anim2, child) {
          return Transform.scale(
              scale: anim1.value,
              child: Opacity(
                opacity: anim1.value,
                child: AlertDialog(
                  shape: RoundedRectangleBorder(
                      borderRadius:
                      BorderRadius.all(Radius.circular(20))),
                  title: Text("Tips"),
                  content:StatefulBuilder(builder: (context, StateSetter setState){
                    return SingleChildScrollView(
                      child: Column(
                        children:  [
                       
                          RadioListTile(
                            value: 0,
                            groupValue: groupValue,
                            ///点击状态改变时的回调 必选参数
                            onChanged: (v) {
                              setState(() {
                                groupValue = v;
                              });
                            },
                            title: Text("Pay \$1 only for"),
                       
                          ),
                          RadioListTile(
                            value: 1,
                            groupValue: groupValue,
                            onChanged: (v) {
                              setState(() {
                                groupValue = v;
                              });
                            },
                            title: Text("Pay \$3 for"),
                       
                          ),
                     
                        ],
                      ),
                    );
                  }),
                  actions: [
                    FlatButton(
                      onPressed: () {
                        FocusScope.of(context).requestFocus(FocusNode());
                        Navigator.pop(context);
                      },
                      child: Text('Cancel'),
                    ),
                    FlatButton(
                      onPressed: () {
                        FocusScope.of(context).requestFocus(FocusNode());
                        Navigator.pop(context);
                      },
                      child: Text('Pay Now'),
                    ),
                  ],
                ),
              ));
        });
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值