getPresentationWidgetsCommonExpandCollaspeTemplate function
String
getPresentationWidgetsCommonExpandCollaspeTemplate(
- String projectName
)
Implementation
String getPresentationWidgetsCommonExpandCollaspeTemplate(String projectName) {
return '''
import 'package:flutter/material.dart';
import 'package:${projectName}/core/theme/app_colors.dart';
import 'package:${projectName}/core/utils/responsive_size.dart';
import 'package:${projectName}/presentation/widgets/text_widget.dart';
class ExpandCollapseWidget extends StatelessWidget {
final String title;
final Widget? parentWidget;
final Widget child;
final bool? isExpanded;
final VoidCallback? onToggle;
final double? width;
final double? height;
final EdgeInsetsGeometry? margin;
final dynamic item;
const ExpandCollapseWidget({
super.key,
required this.title,
this.parentWidget,
required this.child,
this.isExpanded,
this.onToggle,
this.width,
this.height,
this.margin,
required this.item,
});
@override
Widget build(BuildContext context) {
return Container(
width: width,
height: height,
margin: EdgeInsets.zero,
padding: EdgeInsets.zero,
decoration: BoxDecoration(
// color: ColorResource.appTheme,
borderRadius: BorderRadius.circular(12.sp),
border: Border.all(color: AppColors.themeBorder, width: 1),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(12.sp),
topRight: Radius.circular(12.sp),
bottomLeft: Radius.circular(item.isExpanded == false ? 8.sp : 0),
bottomRight: Radius.circular(item.isExpanded == false ? 8.sp : 0),
),
child: GestureDetector(
onTap: onToggle,
child: Container(
color: AppColors.orangeBackground,
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 15.sp,
vertical: 10.sp,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
TextWidget(
text: title,
textSize: 16.sp,
color: Colors.white,
fontWeight: FontWeight.w500,
),
Icon(
isExpanded == true
? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down,
size: 20.sp,
color: Colors.white,
),
// Image.asset(
// isExpanded==true ? ImageResource.upImage : ImageResource.downImage,
// width: 13.dp,
// height: 13.dp,
// color: Colors.white,
// ),
],
),
),
),
),
),
AnimatedCrossFade(
firstCurve: Curves.fastOutSlowIn,
secondCurve: Curves.fastOutSlowIn,
firstChild: Container(),
secondChild: child,
crossFadeState: isExpanded == true
? CrossFadeState.showSecond
: CrossFadeState.showFirst,
duration: Duration(milliseconds: 300),
),
],
),
);
}
}
''';
}