import 'package:flutter/material.dart';
class PositionedTransitionWidget extends StatefulWidget {
@override
_PositionedTransitionWidgetState createState() =>
_PositionedTransitionWidgetState();
}
class _PositionedTransitionWidgetState extends State<PositionedTransitionWidget>
with SingleTickerProviderStateMixin {
final RelativeRectTween relativeRectTween = RelativeRectTween(
begin: RelativeRect.fromLTRB(100, 100, 0, 0),
end: RelativeRect.fromLTRB(0, 0, 50, 50),
);
AnimationController controller;
bool status = true;
@override
void initState() {
controller = AnimationController(
vsync: this,
duration: const Duration(seconds: 1),
);
super.initState();
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
color: Colors.pink,
width: 300,
height: 300,
child: Stack(
children: <Widget>[
PositionedTransition(
rect: relativeRectTween.animate(controller),
child: Container(
color: Colors.orange,
width: 200,
height: 200,
padding: EdgeInsets.all(20),
child: FlutterLogo(),
),
),
],
),
),
RaisedButton(
onPressed: () {
status ? controller.forward() : controller.reverse();
status = !status;
},
child: Text("Change Positione"),
)
],
);
}
}
class PositionedTransitionWidget extends StatefulWidget {
@override
_PositionedTransitionWidgetState createState() =>
_PositionedTransitionWidgetState();
}
class _PositionedTransitionWidgetState extends State<PositionedTransitionWidget>
with SingleTickerProviderStateMixin {
final RelativeRectTween relativeRectTween = RelativeRectTween(
begin: RelativeRect.fromLTRB(100, 100, 0, 0),
end: RelativeRect.fromLTRB(0, 0, 50, 50),
);
AnimationController controller;
bool status = true;
@override
void initState() {
controller = AnimationController(
vsync: this,
duration: const Duration(seconds: 1),
);
super.initState();
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
color: Colors.pink,
width: 300,
height: 300,
child: Stack(
children: <Widget>[
PositionedTransition(
rect: relativeRectTween.animate(controller),
child: Container(
color: Colors.orange,
width: 200,
height: 200,
padding: EdgeInsets.all(20),
child: FlutterLogo(),
),
),
],
),
),
RaisedButton(
onPressed: () {
status ? controller.forward() : controller.reverse();
status = !status;
},
child: Text("Change Positione"),
)
],
);
}
}
Feel free to use the code in your projects but do not forget to give me the credits adding my app (Flutter Animation Gallery) where you are gonna use it.
------------------------------------------
import 'package:animator/animator.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class MyCustomWidget extends StatefulWidget {
@override
_MyCustomWidgetState createState() => _MyCustomWidgetState();
}
class _MyCustomWidgetState extends State<MyCustomWidget> {
@override
Widget build(BuildContext context) {
double _width = MediaQuery.of(context).size.width;
return Scaffold(
body: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
height: _width / 2.7,
width: _width / 2.7,
child: Animator<double>(
duration: Duration(milliseconds: 1000),
cycles: 0,
curve: Curves.elasticIn,
tween: Tween<double>(begin: 20.0, end: 25.0),
builder: (context, animatorState, child) => Icon(
Icons.favorite,
size: animatorState.value * 5,
color: Color(0xFFFF5757),
),
),
),
Container(
height: _width / 2.7,
width: _width / 2.7,
child: Animator<double>(
duration: Duration(milliseconds: 1000),
cycles: 0,
curve: Curves.elasticInOut,
tween: Tween<double>(begin: 20.0, end: 25.0),
builder: (context, animatorState, child) => Icon(
Icons.favorite,
size: animatorState.value * 5,
color: Color(0xFFFF5757),
),
),
),
],
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
height: _width / 2.7,
width: _width / 2.7,
child: Animator<double>(
duration: Duration(milliseconds: 1000),
cycles: 0,
curve: Curves.bounceOut,
tween: Tween<double>(begin: 20.0, end: 25.0),
builder: (context, animatorState, child) => Icon(
Icons.favorite,
size: animatorState.value * 5,
color: Color(0xFFFF5757),
),
),
),
Container(
height: _width / 2.7,
width: _width / 2.7,
child: Animator<double>(
duration: Duration(milliseconds: 1000),
cycles: 0,
curve: Curves.elasticOut,
tween: Tween<double>(begin: 20.0, end: 25.0),
builder: (context, animatorState, child) => Icon(
Icons.favorite,
size: animatorState.value * 5,
color: Color(0xFFFF5757),
),
),
),
],
),
],
),
);
}
}
------------------------------------------
import 'package:animator/animator.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class MyCustomWidget extends StatefulWidget {
@override
_MyCustomWidgetState createState() => _MyCustomWidgetState();
}
class _MyCustomWidgetState extends State<MyCustomWidget> {
@override
Widget build(BuildContext context) {
double _width = MediaQuery.of(context).size.width;
return Scaffold(
body: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
height: _width / 2.7,
width: _width / 2.7,
child: Animator<double>(
duration: Duration(milliseconds: 1000),
cycles: 0,
curve: Curves.elasticIn,
tween: Tween<double>(begin: 20.0, end: 25.0),
builder: (context, animatorState, child) => Icon(
Icons.favorite,
size: animatorState.value * 5,
color: Color(0xFFFF5757),
),
),
),
Container(
height: _width / 2.7,
width: _width / 2.7,
child: Animator<double>(
duration: Duration(milliseconds: 1000),
cycles: 0,
curve: Curves.elasticInOut,
tween: Tween<double>(begin: 20.0, end: 25.0),
builder: (context, animatorState, child) => Icon(
Icons.favorite,
size: animatorState.value * 5,
color: Color(0xFFFF5757),
),
),
),
],
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
height: _width / 2.7,
width: _width / 2.7,
child: Animator<double>(
duration: Duration(milliseconds: 1000),
cycles: 0,
curve: Curves.bounceOut,
tween: Tween<double>(begin: 20.0, end: 25.0),
builder: (context, animatorState, child) => Icon(
Icons.favorite,
size: animatorState.value * 5,
color: Color(0xFFFF5757),
),
),
),
Container(
height: _width / 2.7,
width: _width / 2.7,
child: Animator<double>(
duration: Duration(milliseconds: 1000),
cycles: 0,
curve: Curves.elasticOut,
tween: Tween<double>(begin: 20.0, end: 25.0),
builder: (context, animatorState, child) => Icon(
Icons.favorite,
size: animatorState.value * 5,
color: Color(0xFFFF5757),
),
),
),
],
),
],
),
);
}
}
Feel free to use the code in your projects but do not forget to give me the credits adding my app (Flutter Animation Gallery) where you are gonna use it.
------------------------------------------
import 'package:flutter/material.dart';
class MyCustomWidget extends StatefulWidget {
@override
_MyCustomWidgetState createState() => _MyCustomWidgetState();
}
class _MyCustomWidgetState extends State<MyCustomWidget>
with TickerProviderStateMixin {
Animation _heartAnimation;
AnimationController _heartAnimationController;
bool isTapped = false;
@override
void initState() {
super.initState();
_heartAnimationController = AnimationController(
vsync: this,
duration: Duration(milliseconds: 1500),
reverseDuration: Duration(milliseconds: 400));
_heartAnimation = Tween(begin: 120.0, end: 170.0).animate(CurvedAnimation(
curve: Curves.elasticOut,
reverseCurve: Curves.ease,
parent: _heartAnimationController));
_heartAnimationController.addStatusListener(
(AnimationStatus status) {
if (status == AnimationStatus.completed) {
_heartAnimationController.reverse();
} else if (status == AnimationStatus.dismissed) {
_heartAnimationController.forward();
}
},
);
}
@override
void dispose() {
super.dispose();
_heartAnimationController?.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: secondChild(),
),
);
}
Widget secondChild() {
return AnimatedBuilder(
animation: _heartAnimationController,
builder: (context, child) {
return Center(
child: AnimatedBuilder(
animation: _heartAnimationController,
builder: (context, child) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Icon(Icons.favorite,
color: Colors.red, size: _heartAnimation.value),
Column(
children: [
ElevatedButton(
onPressed: () => _heartAnimationController.forward(),
child: Text(
'Start beating',
),
),
ElevatedButton(
onPressed: () => _heartAnimationController.stop(),
child: Text(
'Stop beating',
),
),
],
),
],
),
);
},
),
);
},
);
}
}
------------------------------------------
import 'package:flutter/material.dart';
class MyCustomWidget extends StatefulWidget {
@override
_MyCustomWidgetState createState() => _MyCustomWidgetState();
}
class _MyCustomWidgetState extends State<MyCustomWidget>
with TickerProviderStateMixin {
Animation _heartAnimation;
AnimationController _heartAnimationController;
bool isTapped = false;
@override
void initState() {
super.initState();
_heartAnimationController = AnimationController(
vsync: this,
duration: Duration(milliseconds: 1500),
reverseDuration: Duration(milliseconds: 400));
_heartAnimation = Tween(begin: 120.0, end: 170.0).animate(CurvedAnimation(
curve: Curves.elasticOut,
reverseCurve: Curves.ease,
parent: _heartAnimationController));
_heartAnimationController.addStatusListener(
(AnimationStatus status) {
if (status == AnimationStatus.completed) {
_heartAnimationController.reverse();
} else if (status == AnimationStatus.dismissed) {
_heartAnimationController.forward();
}
},
);
}
@override
void dispose() {
super.dispose();
_heartAnimationController?.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: secondChild(),
),
);
}
Widget secondChild() {
return AnimatedBuilder(
animation: _heartAnimationController,
builder: (context, child) {
return Center(
child: AnimatedBuilder(
animation: _heartAnimationController,
builder: (context, child) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Icon(Icons.favorite,
color: Colors.red, size: _heartAnimation.value),
Column(
children: [
ElevatedButton(
onPressed: () => _heartAnimationController.forward(),
child: Text(
'Start beating',
),
),
ElevatedButton(
onPressed: () => _heartAnimationController.stop(),
child: Text(
'Stop beating',
),
),
],
),
],
),
);
},
),
);
},
);
}
}
أدعوا أصدقائكم لنشر المزيد من المشاريع الصغيرة والكبيرة مع ملفات مساعدة
import 'package:flutter/material.dart';
class SearchListWidget extends StatefulWidget {
@override
_SearchListWidgetState createState() => _SearchListWidgetState();
}
class _SearchListWidgetState extends State<SearchListWidget> {
final initList = List<String>.generate(10000, (i) => "Search Item $i");
TextEditingController editingController = TextEditingController();
var showItemList = List<String>();
@override
void initState() {
showItemList.addAll(initList);
super.initState();
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
TextField(
controller: editingController,
decoration: InputDecoration(
labelText: "Search",
hintText: "Search",
prefixIcon: Icon(Icons.search),
border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(24)),
),
),
keyboardType: TextInputType.number,
onChanged: (value) {
filterSearch(value);
},
),
Expanded(
child: ListView.builder(
shrinkWrap: true,
itemCount: showItemList.length,
itemBuilder: (context, index) {
return ListTile(
title: Text('${showItemList[index]}'),
);
},
),
),
],
);
}
filterSearch(String query) {
List<String> searchList = List<String>();
searchList.addAll(initList);
if (query.isNotEmpty) {
List<String> resultListData = List<String>();
searchList.forEach((item) {
if (item.contains(query)) {
resultListData.add(item);
}
});
setState(() {
showItemList.clear();
showItemList.addAll(resultListData);
});
return;
} else {
setState(() {
showItemList.clear();
showItemList.addAll(initList);
});
}
}
}
class SearchListWidget extends StatefulWidget {
@override
_SearchListWidgetState createState() => _SearchListWidgetState();
}
class _SearchListWidgetState extends State<SearchListWidget> {
final initList = List<String>.generate(10000, (i) => "Search Item $i");
TextEditingController editingController = TextEditingController();
var showItemList = List<String>();
@override
void initState() {
showItemList.addAll(initList);
super.initState();
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
TextField(
controller: editingController,
decoration: InputDecoration(
labelText: "Search",
hintText: "Search",
prefixIcon: Icon(Icons.search),
border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(24)),
),
),
keyboardType: TextInputType.number,
onChanged: (value) {
filterSearch(value);
},
),
Expanded(
child: ListView.builder(
shrinkWrap: true,
itemCount: showItemList.length,
itemBuilder: (context, index) {
return ListTile(
title: Text('${showItemList[index]}'),
);
},
),
),
],
);
}
filterSearch(String query) {
List<String> searchList = List<String>();
searchList.addAll(initList);
if (query.isNotEmpty) {
List<String> resultListData = List<String>();
searchList.forEach((item) {
if (item.contains(query)) {
resultListData.add(item);
}
});
setState(() {
showItemList.clear();
showItemList.addAll(resultListData);
});
return;
} else {
setState(() {
showItemList.clear();
showItemList.addAll(initList);
});
}
}
}
❤1
import 'package:flutter/material.dart';
import 'dart:math' as math;
class AnimatedBuilderWidget extends StatefulWidget {
@override
_AnimatedBuilderWidgetState createState() => _AnimatedBuilderWidgetState();
}
class _AnimatedBuilderWidgetState extends State<AnimatedBuilderWidget>
with SingleTickerProviderStateMixin {
AnimationController _controller;
bool status = true;
@override
void initState() {
super.initState();
_controller = AnimationController(
duration: const Duration(seconds: 10),
vsync: this,
);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
AnimatedBuilder(
animation: _controller,
child: Container(width: 200.0, height: 200.0, color: Colors.green),
builder: (BuildContext context, Widget child) {
return Transform.rotate(
angle: _controller.value * 2.0 * math.pi,
child: child,
);
},
),
SizedBox(
height: 50,
),
RaisedButton(
onPressed: () {
status ? _controller.forward() : _controller.reverse();
status = !status;
},
child: Text("Click"),
)
],
);
}
}
import 'dart:math' as math;
class AnimatedBuilderWidget extends StatefulWidget {
@override
_AnimatedBuilderWidgetState createState() => _AnimatedBuilderWidgetState();
}
class _AnimatedBuilderWidgetState extends State<AnimatedBuilderWidget>
with SingleTickerProviderStateMixin {
AnimationController _controller;
bool status = true;
@override
void initState() {
super.initState();
_controller = AnimationController(
duration: const Duration(seconds: 10),
vsync: this,
);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
AnimatedBuilder(
animation: _controller,
child: Container(width: 200.0, height: 200.0, color: Colors.green),
builder: (BuildContext context, Widget child) {
return Transform.rotate(
angle: _controller.value * 2.0 * math.pi,
child: child,
);
},
),
SizedBox(
height: 50,
),
RaisedButton(
onPressed: () {
status ? _controller.forward() : _controller.reverse();
status = !status;
},
child: Text("Click"),
)
],
);
}
}
import 'package:flutter/material.dart';
class BottomAppBarWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {},
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
bottomNavigationBar: BottomAppBar(
shape: CircularNotchedRectangle(),
notchMargin: 5,
color: Colors.blue,
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
IconButton(
icon: Icon(Icons.home, color: Colors.white),
onPressed: () {},
),
IconButton(
icon: Icon(Icons.more_vert, color: Colors.white),
onPressed: () {},
),
],
),
),
);
}
}
class BottomAppBarWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {},
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
bottomNavigationBar: BottomAppBar(
shape: CircularNotchedRectangle(),
notchMargin: 5,
color: Colors.blue,
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
IconButton(
icon: Icon(Icons.home, color: Colors.white),
onPressed: () {},
),
IconButton(
icon: Icon(Icons.more_vert, color: Colors.white),
onPressed: () {},
),
],
),
),
);
}
}
Feel free to use the code in your projects but do not forget to give me the credits adding my app (Flutter Animation Gallery) where you are gonna use it.
------------------------------------------
import 'package:animations/animations.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class MyCustomWidget extends StatefulWidget {
@override
_MyCustomWidgetState createState() => _MyCustomWidgetState();
}
class _MyCustomWidgetState extends State<MyCustomWidget> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: OpenContainer(
closedBuilder: (_, openContainer) {
return Container(
height: 200,
width: 200,
child: IconButton(
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
onPressed: openContainer,
icon: Icon(
Icons.arrow_forward,
size: 30,
color: Colors.black.withOpacity(0.8),
),
),
);
},
openColor: Colors.white,
closedElevation: 50.0,
closedShape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(100),
),
closedColor: Colors.white,
openBuilder: (_, closeContainer) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.blue,
title: Text('Go back'),
leading: IconButton(
onPressed: closeContainer,
icon: Icon(Icons.arrow_back, color: Colors.white),
),
),
);
},
),
),
);
}
}
------------------------------------------
import 'package:animations/animations.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class MyCustomWidget extends StatefulWidget {
@override
_MyCustomWidgetState createState() => _MyCustomWidgetState();
}
class _MyCustomWidgetState extends State<MyCustomWidget> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: OpenContainer(
closedBuilder: (_, openContainer) {
return Container(
height: 200,
width: 200,
child: IconButton(
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
onPressed: openContainer,
icon: Icon(
Icons.arrow_forward,
size: 30,
color: Colors.black.withOpacity(0.8),
),
),
);
},
openColor: Colors.white,
closedElevation: 50.0,
closedShape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(100),
),
closedColor: Colors.white,
openBuilder: (_, closeContainer) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.blue,
title: Text('Go back'),
leading: IconButton(
onPressed: closeContainer,
icon: Icon(Icons.arrow_back, color: Colors.white),
),
),
);
},
),
),
);
}
}
