Follow me on LinkedIn
Follow me on Github.com
let's create a simple product listing page in Flutter. This example will include a basic UI to display a list of products with their names and images. We'll also include a dummy data list to simulate fetching product data.
This example is easy to understand and serves as a good starting point for beginners to learn how to build a product listing page in Flutter.
Step 1: Setting Up the Project
First, ensure you have Flutter installed and set up on your machine. Create a new Flutter project:
flutter create product_listing
cd product_listing
Step 2: Creating the Product Model
Create a simple model class for the product. This will help us to organize the product data.
// lib/models/product.dart
class Product {
final String name;
final String imageUrl;
Product({required this.name, required this.imageUrl});
}
Step 3: Creating Dummy Data
Let's create some dummy data for our products.
// lib/data/dummy_products.dart
import '../models/product.dart';
List<Product> dummyProducts = [
Product(name: 'Product 1', imageUrl: 'https://via.placeholder.com/150'),
Product(name: 'Product 2', imageUrl: 'https://via.placeholder.com/150'),
Product(name: 'Product 3', imageUrl: 'https://via.placeholder.com/150'),
Product(name: 'Product 4', imageUrl: 'https://via.placeholder.com/150'),
];
Step 4: Creating the Product Listing Page
Now, we'll create the product listing page that will display our list of products.
// lib/screens/product_listing_page.dart
import 'package:flutter/material.dart';
import '../models/product.dart';
import '../data/dummy_products.dart';
class ProductListingPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Product Listing'),
),
body: GridView.builder(
padding: const EdgeInsets.all(10.0),
itemCount: dummyProducts.length,
itemBuilder: (ctx, i) => ProductItem(dummyProducts[i]),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 3 / 2,
crossAxisSpacing: 10,
mainAxisSpacing: 10,
),
),
);
}
}
class ProductItem extends StatelessWidget {
final Product product;
ProductItem(this.product);
@override
Widget build(BuildContext context) {
return ClipRRect(
borderRadius: BorderRadius.circular(10),
child: GridTile(
child: Image.network(
product.imageUrl,
fit: BoxFit.cover,
),
footer: GridTileBar(
backgroundColor: Colors.black87,
title: Text(
product.name,
textAlign: TextAlign.center,
),
),
),
);
}
}
Step 5: Updating the Main Application File
Finally, update the main application file to use the ProductListingPage
.
// lib/main.dart
import 'package:flutter/material.dart';
import 'screens/product_listing_page.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Product Listing',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: ProductListingPage(),
);
}
}
Step 6: Running the Application
Run the application using the following command:
flutter run
Summary
This simple Flutter application displays a list of products using a GridView
. Each product is represented by a name and an image. We used dummy data to simulate product information and created a basic UI to present the data.
happy coding !
Top comments (0)