chooseImage static method

void chooseImage(
  1. BuildContext context, {
  2. required dynamic selectedImage(
    1. PickedFile? file
    ),
  3. Color iconColor = Colors.black45,
})

Implementation

static void chooseImage(BuildContext context,
    {required Function(PickedFile? file) selectedImage,
    Color iconColor = Colors.black45}) {
  showModalBottomSheet(
    context: context,
    builder: (BuildContext context) => SafeArea(
      child: Container(
        padding: EdgeInsets.all(10),
        decoration: BoxDecoration(
            color: Colors.white38, borderRadius: BorderRadius.circular(50)),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Container(
              height: 5,
              width: 60,
              decoration: BoxDecoration(
                color: Colors.black45,
                borderRadius: BorderRadius.circular(10),
              ),
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: <Widget>[
                Column(
                  mainAxisSize: MainAxisSize.min,
                  children: <Widget>[
                    Container(
                      child: IconButton(
                        iconSize: 64,
                        icon: Icon(
                          Icons.camera_alt,
                          color: iconColor,
                        ),
                        onPressed: () async {
                          Navigator.pop(context);
                          final file = await chooseCamera(context);
                          selectedImage(file);
                        },
                      ),
                    ),
                    Container(
                      child: Text(
                        'Camera',
                        style: TextStyle(color: iconColor),
                      ),
                    )
                  ],
                ),
                Column(
                  mainAxisSize: MainAxisSize.min,
                  children: <Widget>[
                    Container(
                      child: IconButton(
                        iconSize: 64,
                        icon: Icon(
                          Icons.photo,
                          color: iconColor,
                        ),
                        onPressed: () async {
                          Navigator.pop(context);
                          final file = await chooseGallery(context);
                          selectedImage(file);
                        },
                      ),
                    ),
                    Container(
                      child: Text(
                        'Gallery',
                        style: TextStyle(color: iconColor),
                      ),
                    )
                  ],
                )
              ],
            )
          ],
        ),
      ),
    ),
  );
}