flutter(2-9) exps
flutter(2-9) exps
import 'package:flutter/material.dart';
void main(){
runApp(MyWidgetsApp());
}
class MyWidgetsApp extends StatelessWidget{
Widget build(BuildContext context){
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My Widgets Example'),
),
body:Center(
child: Container(
height:400,
width: double.infinity,
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color:Colors.green,
borderRadius: BorderRadius.circular(8),
),
child:Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'I am inside a container',
style:TextStyle(fontSize: 24,fontWeight: FontWeight.bold),
),
SizedBox(height: 20),
Image.asset(
'assets/images/biryani.jpg',
height:250,
width: 250,
)
],
)
),
)
),
);
}
}
2b)row column stack
import 'package:flutter/material.dart';
void main(){
runApp(MyApp());
}
class MyApp extends StatelessWidget{
Widget build(BuildContext context){
return MaterialApp(
home:Scaffold(
appBar: AppBar(
title: Text('Layout Widgets Example'),
),
body: Center(
child:Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(color: Colors.blue, height: 50,width: 50,child: Text('box1',style:
TextStyle(color: Colors.white),),),
SizedBox(width: 20),
Container(color:Colors.red,height: 50,width: 50,child: Text('box2',style:
TextStyle(color: Colors.white),),),
SizedBox(width: 20),
Container(color:Colors.green,height: 50,width: 50,child: Text('box3',style:
TextStyle(color: Colors.white),),),
],
),
SizedBox(height:50),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(color: Colors.blue,height: 50,width: 50,child: Text('box1',style:
TextStyle(color: Colors.white),),),
SizedBox(height: 20),
Container(color:Colors.red,height: 50,width: 50,child: Text('box2',style:
TextStyle(color: Colors.white),),),
SizedBox(height: 20),
Container(color:Colors.green,height: 50,width: 50,child: Text('box3',style:
TextStyle(color: Colors.white),),),
],),
SizedBox(height:50),
Stack(
alignment: Alignment.center,
children: [
Container(color: Colors.red,height: 150,width: 150),
Positioned(
top: 30,
child: Container(color: Colors.blue,height:100,width: 100),
),
Positioned(
bottom: 30,
child:Container(color:Colors.yellow,height: 50,width: 50), ),
],
),
],
),
),
)
);
}
}
void main() {
runApp(MyApp());
}
return Scaffold(
appBar: AppBar(
title: Text('Responsive UI'),
),
body: Center(
child: LayoutBuilder(
builder: (context, constraints) {
if (screenSize > 800) {
// Large screen
return Text('Large Screen View');
} else if (screenSize > 600) {
// Tablet screen
return Text('Tablet View');
} else {
// Mobile screen
return Text('Mobile View');
}
},
),
),
);
}
}
4a)navigation between screens
b) Navigation with named routes
import 'package:flutter/material.dart';
void main(){
runApp(MyApp());
}
class MyApp extends StatelessWidget{
Widget build(BuildContext context){
return MaterialApp(
initialRoute:'/',
routes: {
'/':(context)=>HomeScreen(),
'/about':(context)=>AboutScreen(),
},
);
}
}
class HomeScreen extends StatelessWidget{
@override
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar(
title: Text('HomeScreen'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Welcome'),
ElevatedButton(onPressed: (){
Navigator.pushNamed(context,'/about');
}, child:Text('Go to About Screen')
)
],
),
),
);
}
}
class AboutScreen extends StatelessWidget{
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar(
title:Text('About Screen'),
),
body:Center(
child:Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('About Screen'),
ElevatedButton(onPressed: (){
Navigator.pop(context);
}, child: Text('Back')
)
],
)
)
);
}
}
5 a)stateful and stateless widgets
5b) Implement state management using set state and provider
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() {
runApp(MyApp());
}
void increment() {
_count++;
notifyListeners();
}
}
void main(){
runApp(MyApp());
}
class MyApp extends StatelessWidget{
Widget build(BuildContext context){
return MaterialApp(
theme: ThemeData(primaryColor: Colors.blue, textTheme: TextTheme(bodyLarge:
TextStyle(fontSize: 20))),
home: MyCustomApp(),
);
}
}
class MyCustomApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Custom Styling")),
body: Center(
child: ElevatedButton(
style: ElevatedButton.styleFrom(backgroundColor: Colors.blue, padding:
EdgeInsets.all(16)),
onPressed: () {},
child: Text("Styled Button", style: Theme.of(context).textTheme.bodyLarge),
),
),
);
}
}
],
)
)
)
);
}
}
8 a) nd b)
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
MyAppState createState() => MyAppState();
}
class MyAppState extends State<MyApp> {
bool show = true;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: GestureDetector(
onTap: () => setState(() => show = !show),
child: AnimatedOpacity(
opacity: show ? 1 : 0,//fade animation
duration: Duration(seconds: 5),
child: AnimatedSlide(//slide animation
offset: show ? Offset(0, 0) : Offset(1, 0),
duration: Duration(seconds: 5),
child: Container(
color: Colors.blue,
height: 100,
width: 100,
),
),
),
),
),
),
);
}
}
9 ) a fetch data api
and b)display fetched data
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
void main() {
runApp(ApiDataScreen());
}