You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/views/widgets/images/image_item.dart

66 lines
2.0 KiB
Dart

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
3 years ago
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/loaders/image_loader.dart';
class ImageItem extends StatelessWidget {
final String url;
final bool isVideo;
final VoidCallback onPressed;
const ImageItem({
Key key,
this.url,
this.isVideo = false,
this.onPressed
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: 80 * AppStyle.getScaleFactor(context),
height: 40 * AppStyle.getScaleFactor(context),
margin: EdgeInsets.symmetric(
horizontal: 4 * AppStyle.getScaleFactor(context),
),
decoration: BoxDecoration(
border: Border.all(
color: Theme.of(context).dividerColor,
width: 2 * AppStyle.getScaleFactor(context),
),
borderRadius: BorderRadius.circular(8 * AppStyle.getScaleFactor(context)),
),
child: ClipRRect(
borderRadius: BorderRadius.circular(6 * AppStyle.getScaleFactor(context)),
child: Stack(
fit: StackFit.expand,
alignment: Alignment.center,
children: [
ImageLoader(url: url,),
MaterialButton(
onPressed: onPressed,
padding: EdgeInsets.zero,
child: Visibility(
visible: isVideo,
child: Center(
child: Container(
decoration: BoxDecoration(
color: Colors.black45,
shape: BoxShape.circle,
),
child: FaIcon(
FontAwesomeIcons.playCircle,
size: 32 * AppStyle.getScaleFactor(context),
color: AColors.orange,
),
),
)
),
),
],
),
),
);
}
}