Session 13
Session 13
Register no : 24MCA1066
void toggleisFeatured(){
_isFeatured = !_isFeatured;
}
@override
State<Home>createState()=>_HomeState();
}
class _HomeState extends State<Home>{
@override
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar(
title: StyledTitle('My projects'),
centerTitle: true,
) ,
body:Container(
padding: EdgeInsets.all(16),
child: Column(
children: [
Expanded(
child: ListView.builder(
itemCount: Project.projects.length,
itemBuilder: (_,index){
return ProjectCard(Project.projects[index]
);
},
),
),
StyledButton(onPressed: (){}, child: StyledHeading("Create New")),
],
),
)
);
}
}
@override
Widget build(BuildContext context){
return Card(
child:Padding(
padding: EdgeInsets.symmetric(horizontal: 24,vertical: 16),
child:Row(
children:[
Image.asset(
'assets/img/category/${project.category.image}',
width : 80,
),
SizedBox(width : 20),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
StyledHeading(project.title),
StyledText(project.category.title),
],
),
Expanded(child:SizedBox()),
IconButton(
onPressed:(){},
icon: Icon(
Icons.arrow_forward,
color: AppColors.textColor,
),
),
],
),
),
);
}
}
Lib → shared →shared_button.dart
import 'package:flutter/material.dart';
import 'package:research_app/theme.dart';
@override
Widget build(BuildContext context){
return TextButton(
onPressed:onPressed,
child :Container(
padding:EdgeInsets.symmetric(vertical:10,horizontal: 20),
decoration: BoxDecoration(
gradient: LinearGradient(colors :
[AppColors.primaryColor,AppColors.primaryAccent],
begin:Alignment.topCenter,
end:Alignment.bottomCenter
),
borderRadius: BorderRadius.all(Radius.circular(10))
),
child:child,
)
);
}
}
@override
Widget build(BuildContext context){
return Text(
text,
style:
GoogleFonts.kanit(textStyle:Theme.of(context).textTheme.bodyMedium),
);
}
}
@override
Widget build(BuildContext context){
return Text(
text.toUpperCase(),
style:GoogleFonts.kanit(textStyle:Theme.of(context).textTheme.headlineMediu
m),
);
}
}
@override
Widget build(BuildContext context){
return Text(
text.toUpperCase(),
style:GoogleFonts.kanit(textStyle:Theme.of(context).textTheme.titleMedium),
);
}
}
Lib → main.dart
import 'package:flutter/material.dart';
import 'package:research_app/screens/home/home.dart';
import 'package:research_app/theme.dart';
void main() {
runApp(MaterialApp(
theme: primaryTheme,
home: const Home(),
));
}
Lib→ skill.dart
import 'package:research_app/models/category.dart';
class Skill {
final String id;
final String name;
final String image;
final ProjectCategory projectCategory;
Skill(
{required this.id,
required this.name,
required this.image,
required this.projectCategory});
Lib→ theme.dart
import 'package:flutter/material.dart';
class AppColors{
static Color primaryColor = const Color.fromRGBO(162,29,19,1);
static Color primaryAccent = const Color.fromRGBO(120, 14, 14, 1);
static Color secondaryColor = const Color.fromRGBO(45,45,45,1);
static Color secondaryAccent = const Color.fromRGBO(35,35,35,1);
static Color titleColor = const Color.fromRGBO(200,200,200,1);
static Color textColor = const Color.fromRGBO(150,150,150,1);
static Color successColor = const Color.fromRGBO(9,149,110,1);
static Color highlightColor = const Color.fromRGBO(212,172,13,1);
}
Output: