From 075cab9350d8f86e57f023a0b6312e39371cc3f6 Mon Sep 17 00:00:00 2001 From: adsarevivek05-ux Date: Sat, 19 Jul 2025 20:51:36 +0530 Subject: [PATCH] Assignment no 1 import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Plant Store UI', theme: ThemeData( primarySwatch: Colors.green, ), home: PlantStoreHome(), ); } } class PlantStoreHome extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( leading: IconButton( icon: Icon(Icons.menu), onPressed: () {}, ), actions: [ IconButton( icon: Icon(Icons.shopping_cart), onPressed: () {}, ), ], ), body: Column( children: [ Padding( padding: const EdgeInsets.all(16.0), child: Text( 'Hello Mia', style: TextStyle(fontSize: 24), ), ), Padding( padding: const EdgeInsets.all(16.0), child: TextField( decoration: InputDecoration( border: OutlineInputBorder(), hintText: 'Search', prefixIcon: Icon(Icons.search), ), ), ), SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( children: [ CategoryButton(label: 'Popular'), CategoryButton(label: 'Outdoor'), CategoryButton(label: 'Indoor'), CategoryButton(label: 'Top Picks'), ], ), ), Expanded( child: ListView.builder( itemCount: 10, itemBuilder: (context, index) { return PlantCard( name: 'Peace Lily', image: 'peace_lily.jpg', price: 25, ); }, ), ), ], ), ); } } class CategoryButton extends StatelessWidget { final String label; CategoryButton({required this.label}); @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.all(8.0), child: ElevatedButton( onPressed: () {}, child: Text(label), ), ); } } class PlantCard extends StatelessWidget { final String name; final String image; final int price; PlantCard({required this.name, required this.image, required this.price}); @override Widget build(BuildContext context) { return Card( child: Padding( padding: const EdgeInsets.all(16.0), child: Row( children: [ Image.asset(image), SizedBox(width: 16), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(name), Text('\$$price'), ], ), ], ), ), ); } } --- Assignment no 1 | 129 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 Assignment no 1 diff --git a/Assignment no 1 b/Assignment no 1 new file mode 100644 index 0000000..462fa2d --- /dev/null +++ b/Assignment no 1 @@ -0,0 +1,129 @@ +import 'package:flutter/material.dart'; + +void main() { + runApp(MyApp()); +} + +class MyApp extends StatelessWidget { + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Plant Store UI', + theme: ThemeData( + primarySwatch: Colors.green, + ), + home: PlantStoreHome(), + ); + } +} + +class PlantStoreHome extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + leading: IconButton( + icon: Icon(Icons.menu), + onPressed: () {}, + ), + actions: [ + IconButton( + icon: Icon(Icons.shopping_cart), + onPressed: () {}, + ), + ], + ), + body: Column( + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + 'Hello Mia', + style: TextStyle(fontSize: 24), + ), + ), + Padding( + padding: const EdgeInsets.all(16.0), + child: TextField( + decoration: InputDecoration( + border: OutlineInputBorder(), + hintText: 'Search', + prefixIcon: Icon(Icons.search), + ), + ), + ), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + CategoryButton(label: 'Popular'), + CategoryButton(label: 'Outdoor'), + CategoryButton(label: 'Indoor'), + CategoryButton(label: 'Top Picks'), + ], + ), + ), + Expanded( + child: ListView.builder( + itemCount: 10, + itemBuilder: (context, index) { + return PlantCard( + name: 'Peace Lily', + image: 'peace_lily.jpg', + price: 25, + ); + }, + ), + ), + ], + ), + ); + } +} + +class CategoryButton extends StatelessWidget { + final String label; + + CategoryButton({required this.label}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(8.0), + child: ElevatedButton( + onPressed: () {}, + child: Text(label), + ), + ); + } +} + +class PlantCard extends StatelessWidget { + final String name; + final String image; + final int price; + + PlantCard({required this.name, required this.image, required this.price}); + + @override + Widget build(BuildContext context) { + return Card( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + children: [ + Image.asset(image), + SizedBox(width: 16), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(name), + Text('\$$price'), + ], + ), + ], + ), + ), + ); + } +}