123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import 'dart:async';
- import 'package:cached_network_image/cached_network_image.dart';
- import 'package:flutter/cupertino.dart';
- import 'package:flutter/material.dart';
- import 'package:sport/bean/user_friend.dart';
- import 'package:sport/bean/user_info.dart';
- import 'package:sport/services/api/inject_api.dart';
- import 'package:sport/utils/toast.dart';
- import 'package:sport/widgets/button_cancel.dart';
- import 'package:sport/widgets/button_primary.dart';
- import 'package:sport/widgets/misc.dart';
- import '../space.dart';
- class CustomAlertDialog extends StatelessWidget {
- final String title;
- final Widget child;
- final String textCancel;
- final String textOk;
- final Function ok;
- final bool addClose;
- CustomAlertDialog({
- this.title,
- this.child,
- this.textCancel = "取消",
- this.textOk = "确定",
- this.ok,
- this.addClose = false,
- });
- @override
- Widget build(BuildContext context) {
- var _width =
- MediaQuery.of(context).size.width * (child != null ? 0.86 : 0.66);
- return Material(
- type: MaterialType.transparency,
- child: Center(
- child: Container(
- width: _width,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.all(Radius.circular(10.0)),
- color: Colors.white,
- ),
- child: Column(
- mainAxisSize: MainAxisSize.min,
- children: <Widget>[
- if (addClose)
- Align(
- alignment: Alignment.topRight,
- child: IconButton(
- icon: Image.asset("lib/assets/img/btn_close_big.png"),
- onPressed: () => Navigator.pop(context, false),
- )),
- if (title != null)
- Stack(
- children: <Widget>[
- Padding(
- padding: EdgeInsets.fromLTRB(
- 0, child != null ? addClose ? 0 : 16.0 : 32.0, 0, 20),
- child: Text(
- title,
- style: Theme.of(context).textTheme.headline3,
- strutStyle: fixedLine,
- ),
- )
- ],
- ),
- if (child != null)
- ConstrainedBox(
- constraints: BoxConstraints(
- maxHeight: MediaQuery.of(context).size.height - 100),
- child: SingleChildScrollView(
- child: child,
- )),
- Padding(
- padding: const EdgeInsets.all(16.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: <Widget>[
- Expanded(
- child: CancelButton(
- height: 35,
- callback: () {
- Navigator.of(context).pop(false);
- },
- content: textCancel),
- ),
- SizedBox(
- width: 16,
- ),
- Expanded(
- child: PrimaryButton(
- height: 35, callback: ok, content: textOk))
- ],
- ),
- )
- ],
- ),
- ),
- ),
- );
- }
- }
|