SplittingApp intoWidgets
import "package:flutter/material.dart";
void main() {
runApp(demoApp());
}
class demoApp extends StatelessWidget {
demoApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: "Splitting app into Widgets",
theme: ThemeData(
primarySwatch: Colors.indigo,
),
home: SplittingWidgets(), //First Launcher Screen
);
}
}
class SplittingWidgets extends StatelessWidget {
SplittingWidgets({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Splitting Widgets"),
),
body: Container(
child: Column(
children: [
CatItems(),
Contact(),
SubCatItems(),
BottomMenu(),
],
),
),
);
}
}
class CatItems extends StatelessWidget {
CatItems({super.key});
@override
Widget build(BuildContext context) {
return Expanded(
flex: 2,
child: Container(
color: Colors.blue,
child: ListView.builder(
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(13.0),
child: SizedBox(
width: 90,
child: CircleAvatar(
backgroundColor: Colors.yellowAccent,
),
),
);
},
itemCount: 30,
scrollDirection: Axis.horizontal,
),
),
);
}
}
class Contact extends StatelessWidget {
Contact({super.key});
@override
Widget build(BuildContext context) {
return Expanded(
flex: 4,
child: Container(
color: Colors.orange,
child: ListView.builder(
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: ListTile(
leading: CircleAvatar(
backgroundColor: Colors.deepPurple,
),
title: Text("Name"),
subtitle: Text("Mobile No"),
trailing: Icon(Icons.delete,),
),
);
},
),
),
);
}
}
class SubCatItems extends StatelessWidget {
SubCatItems({super.key});
@override
Widget build(BuildContext context) {
return Expanded(
flex: 2,
child: Container(
color: Colors.blueGrey,
child: ListView.builder(
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
width: 150,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(11.0,),
color: Colors.lightBlueAccent,
),
),
);
},
itemCount: 10,
scrollDirection: Axis.horizontal,
),
),
);
}
}
class BottomMenu extends StatelessWidget {
BottomMenu({super.key});
@override
Widget build(BuildContext context) {
return Expanded(
flex: 2,
child: Container(
color: Colors.green,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: GridView.count(
crossAxisCount: 2,
children: [
Container(color: Colors.limeAccent, width: 20, height: 20,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
Container(color: Colors.limeAccent,),
],
crossAxisSpacing: 20,
mainAxisSpacing: 20,
scrollDirection: Axis.horizontal,
),
),
),
);
}
}
Comments
Post a Comment