87 lines
2.2 KiB
Dart
Raw Normal View History

2024-09-24 00:30:31 +04:00
part of 'home_page.dart';
class _CardData {
final String text;
final String info;
final String urlImage;
_CardData({required this.text, required this.info, required this.urlImage});
}
class _Card extends StatefulWidget {
final String text;
final String info;
final String urlImage;
const _Card({super.key, required this.text, required this.info, required this.urlImage});
factory _Card.fromData(_CardData data) => _Card(
text: data.text,
info: data.info,
urlImage: data.urlImage);
@override
State<_Card> createState() => _CardState();
}
class _CardState extends State<_Card> {
bool isLiked = false;
@override
Widget build(BuildContext context) {
return Card(
elevation: 4.0,
margin: const EdgeInsets.all(10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Image.network(
widget.urlImage,
fit: BoxFit.cover,
height: 150.0,
width: double.infinity,
),
Padding(
padding: const EdgeInsets.all(10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
widget.text,
style: const TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 5.0),
Text(
widget.info,
style: const TextStyle(
fontSize: 14.0,
color: Colors.grey,
),
),
Positioned(
top: 8.0,
right: 8.0,
child: GestureDetector(
onTap: () {
setState(() {
isLiked = !isLiked;
});
},
child: Icon(
Icons.favorite,
color: isLiked ? Colors.red : Colors.blueGrey,
size: 30.0,
),
),
),
],
),
),
],
),
);
}
}