From 864287f77b0e8b15a10ed6bc4a8ccd8282131908 Mon Sep 17 00:00:00 2001 From: shreyashkajale71-bot Date: Thu, 17 Jul 2025 15:10:26 +0530 Subject: [PATCH] Assement1 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: HomeScreen(), ); } } class HomeScreen 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: [ CategoryChip(label: 'Popular'), CategoryChip(label: 'Outdoor'), CategoryChip(label: 'Indoor'), CategoryChip(label: 'Top Picks'), ], ), ), Expanded( child: ListView.builder( itemCount: 5, itemBuilder: (context, index) { return PlantCard( name: 'Peace Lily', price: 37, imageUrl: 'https: ); }, ), ), Container( padding: EdgeInsets.all(16), color: Colors.green[100], child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text('Free Shipping'), Icon(Icons.local_shipping), ], ), ), ], ), ); } } class CategoryChip extends StatelessWidget { final String label; CategoryChip({required this.label}); @override Widget build(BuildContext context) { return Container( margin: EdgeInsets.all(8), padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8), decoration: BoxDecoration( border: Border.all(color: Colors.grey), borderRadius: BorderRadius.circular(16), ), child: Text(label), ); } } class PlantCard extends StatelessWidget { final String name; final double price; final String imageUrl; PlantCard({required this.name, required this.price, required this.imageUrl}); @override Widget build(BuildContext context) { return Card( child: Row( children: [ Image.network(imageUrl, width: 100, height: 100, fit: BoxFit.cover), Expanded( child: Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(name, style: TextStyle(fontSize: 18)), Text('\$${price.toStringAsFixed(2)}', style: TextStyle(fontSize: 16)), ], ), ), ), ], ), ); } } class PlantDetailsScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( leading: IconButton( icon: Icon(Icons.arrow_back), onPressed: () { Navigator.pop(context); }, ), actions: [ IconButton( icon: Icon(Icons.favorite_border), onPressed: () {}, ), ], ), body: Column( children: [ Image.network('https://picsum.photos/200/300', height: 200, width: double.infinity, fit: BoxFit.cover), Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('Peace Lily', style: TextStyle(fontSize: 24)), Text('Type: Indoor Plant', style: TextStyle(fontSize: 18)), Text('Category: Popular', style: TextStyle(fontSize: 18)), Text('\$37.00', style: TextStyle(fontSize: 18)), ], ), ), ], ), ); } } --- Assement1 | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 Assement1 diff --git a/Assement1 b/Assement1 new file mode 100644 index 0000000..9a28789 --- /dev/null +++ b/Assement1 @@ -0,0 +1,179 @@ +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: HomeScreen(), + ); + } +} + +class HomeScreen 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: [ + CategoryChip(label: 'Popular'), + CategoryChip(label: 'Outdoor'), + CategoryChip(label: 'Indoor'), + CategoryChip(label: 'Top Picks'), + ], + ), + ), + Expanded( + child: ListView.builder( + itemCount: 5, + itemBuilder: (context, index) { + return PlantCard( + name: 'Peace Lily', + price: 37, + imageUrl: 'https: + ); + }, + ), + ), + Container( + padding: EdgeInsets.all(16), + color: Colors.green[100], + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Free Shipping'), + Icon(Icons.local_shipping), + ], + ), + ), + ], + ), + ); + } +} + +class CategoryChip extends StatelessWidget { + final String label; + + CategoryChip({required this.label}); + + @override + Widget build(BuildContext context) { + return Container( + margin: EdgeInsets.all(8), + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8), + decoration: BoxDecoration( + border: Border.all(color: Colors.grey), + borderRadius: BorderRadius.circular(16), + ), + child: Text(label), + ); + } +} + +class PlantCard extends StatelessWidget { + final String name; + final double price; + final String imageUrl; + + PlantCard({required this.name, required this.price, required this.imageUrl}); + + @override + Widget build(BuildContext context) { + return Card( + child: Row( + children: [ + Image.network(imageUrl, width: 100, height: 100, fit: BoxFit.cover), + Expanded( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(name, style: TextStyle(fontSize: 18)), + Text('\$${price.toStringAsFixed(2)}', style: TextStyle(fontSize: 16)), + ], + ), + ), + ), + ], + ), + ); + } +} + +class PlantDetailsScreen extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + leading: IconButton( + icon: Icon(Icons.arrow_back), + onPressed: () { + Navigator.pop(context); + }, + ), + actions: [ + IconButton( + icon: Icon(Icons.favorite_border), + onPressed: () {}, + ), + ], + ), + body: Column( + children: [ + Image.network('https://picsum.photos/200/300', height: 200, width: double.infinity, fit: BoxFit.cover), + Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Peace Lily', style: TextStyle(fontSize: 24)), + Text('Type: Indoor Plant', style: TextStyle(fontSize: 18)), + Text('Category: Popular', style: TextStyle(fontSize: 18)), + Text('\$37.00', style: TextStyle(fontSize: 18)), + ], + ), + ), + ], + ), + ); + } +}