You are on page 1of 3

import 'package:flutter/material.

dart';

class Product {
final String itemName;
final String itemSize;
final String itemPrice;

Product(this.itemName, this.itemSize, this.itemPrice);


}

class BaseProductScreen extends StatelessWidget {


final List<Product> products = [
Product('T-Shirt', 'L', '100'),
Product('Jeans', 'M', '75'),
Product('Shoes', '9', '120'),
// Add more products as needed
];

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Product List'),
),
body: ListView.builder(
itemCount: products.length,
itemBuilder: (context, index) {
return buildProductCard(products[index]);
},
),
);
}

Widget buildProductCard(Product product) {


return Card(
margin: EdgeInsets.symmetric(horizontal: 15, vertical: 10),
child: Padding(
padding: const EdgeInsets.all(0.0),
child: Row(
children: [
_container1(),
_text1(product.itemName, product.itemSize, product.itemPrice),
finalPart(),
],
),
),
);
}

Widget _container1() {
return Container(
width: 130,
height: 150,
decoration: BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(15), // Top-left corner radius
bottomLeft: Radius.circular(15), // Bottom-left corner radius
),
),
);
}

Widget _text1(String itemName, String itemSize, String itemPrice) {


return Expanded(
child: Padding(
padding: const EdgeInsets.all(10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
itemName,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
SizedBox(height: 10),
Row(
children: [
Text('Size: $itemSize'),
SizedBox(width: 10),
Text('Price: \$${itemPrice}'),
],
),
rowButton(),
],
),
),
);
}

Widget finalPart() {
return Padding(
padding: EdgeInsets.only(right: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Icon(
Icons.favorite,
color: Colors.red,
size: 40,
),
Text(
"\$100",
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
],
),
);
}

Widget rowButton() {
return Padding(
padding: const EdgeInsets.only(top: 15),
child: Row(
children: [
Container(
width: 35,
height: 35,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Icon(Icons.remove),
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 10),
child: Text(
'1',
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
),
Container(
width: 35,
height: 35,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Icon(Icons.add),
),
],
),
);
}
}

//void main() => runApp(MaterialApp(home: BaseProductScreen()));

You might also like