Files
rasadyar_application/lib/presentation/widget/pagination/show_more.dart
mr.mojtaba 50cc84461e feat : button , outlined button
fab button , fab outlined button ,
input , pagination widget's
2025-04-06 15:39:00 +03:30

79 lines
2.0 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:rasadyar_app/presentation/common/app_color.dart';
import 'package:rasadyar_app/presentation/common/app_fonts.dart';
class RShowMore extends StatefulWidget {
const RShowMore({super.key});
@override
State<RShowMore> createState() => _RShowMoreState();
}
class _RShowMoreState extends State<RShowMore>
with SingleTickerProviderStateMixin {
bool _toggled = false;
late final AnimationController _controller;
late final Animation<double> _iconRotation;
@override
void initState() {
super.initState();
_controller = AnimationController(
vsync: this,
duration: const Duration(milliseconds: 500),
);
_iconRotation = Tween<double>(
begin: 0,
end: 0.50,
) // 90 degrees (quarter turn)
.animate(CurvedAnimation(parent: _controller, curve: Curves.easeInOut));
}
void _toggle() {
setState(() => _toggled = !_toggled);
_toggled ? _controller.forward() : _controller.reverse();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: _toggle,
behavior: HitTestBehavior.opaque,
child: Row(
mainAxisSize: MainAxisSize.min,
spacing: 8,
children: [
RotationTransition(
turns: _iconRotation,
child: const Icon(CupertinoIcons.chevron_down, size: 12,color:AppColor.blueNormal ,),
),
AnimatedSwitcher(
duration: const Duration(milliseconds: 500),
transitionBuilder:
(child, animation) =>
FadeTransition(opacity: animation, child: child),
child: Text(
_toggled ? 'کمتر' : 'مشاهده بیشتر',
key: ValueKey(_toggled),
style: AppFonts.yekan10Regular.copyWith(color: AppColor.blueNormal),
),
),
SizedBox(height: 50,)
],
),
);
}
}