1. 페이드 애니메이션 예시 코드
class Home extends StatefulWidget {
const Home({Key? key, this.data, this.getData2, this.getCount, this.countAdd}) : super(key: key);
final data;
final getData2;
final getCount;
final countAdd;
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
var scroll = ScrollController();
@override
void initState() {
super.initState();
scroll.addListener(() {
print(widget.getCount);
if(scroll.position.pixels == scroll.position.maxScrollExtent) {
print('스크롤 끝');
if(widget.getCount == 0) {
widget.getData2();
widget.countAdd();
}
}
});
}
@override
Widget build(BuildContext context) {
if(widget.data.isNotEmpty) {
return ListView.builder(
controller: scroll,
itemCount: widget.data.length,
itemBuilder: (c, i){
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
widget.data[i]['image'].runtimeType == String
? Image.network(widget.data[i]['image'])
: Image.file(widget.data[i]['image']) ,
GestureDetector(
child: Text(widget.data[i]['user']),
onTap: (){
Navigator.push(context,
PageRouteBuilder(
pageBuilder: (c, a1, a2) => Profile(),
transitionsBuilder: (c, a1, a2, child) =>
FadeTransition(opacity: a1, child: child),
transitionDuration: Duration(milliseconds: 500)
)
);
},
),
Text('좋아요 ${widget.data[i]['likes']}'),
Text(widget.data[i]['date']),
Text(widget.data[i]['content']),
],
);
}
);
} else {
return CircularProgressIndicator();
}
}
}
2. 슬라이드 애니메이션 예시코드
GestureDetector(
child: Text(widget.data[i]['user']),
onTap: (){
Navigator.push(context,
PageRouteBuilder(
pageBuilder: (c, a1, a2) => Profile(),
transitionsBuilder: (c, a1, a2, child) =>
SlideTransition(
position: Tween(
begin: Offset(-1.0, 0.0),
end: Offset(0.0, 0.0),
).animate(a1),
child: child,
)
)
);
},
),