import 'package:flutter/material.dart'; import 'package:cs_resources/generated/assets.dart'; import '../utils/dark_theme_util.dart'; import 'my_load_image.dart'; // ignore: slash_for_doc_comments /** 默认是左边文本图标等 右边more小箭头 常用于Me页面的跳转 模板: MyClickItem( title: '测试SP-存和取', drawablePadding: 0, onTap: () { SpUtil.putString("username", "Sky24n"); SpUtil.putString(SPConstant.SP_KEY_TOKEN, "1234"); String? userName = SpUtil.getString("username"); if (!TextUtil.isEmpty(userName)) { SmartDialog.compatible.showToast('username:$userName'); } }, backgroundColor: ColorConstants.dividerColor, ), */ class MyClickItem extends StatelessWidget { const MyClickItem({ Key? key, required this.onTap, required this.title, this.title_color = Colors.black, this.title_size = 16, this.image_path, this.image_width = 25, this.image_height = 25, this.backgroundColor = Colors.white, this.paddingTop = 8, this.padingBottom = 8, this.paddingLeft = 15, this.paddingRight = 15, this.marginTop = 0, this.marginBottom = 0, this.marginLeft = 0, this.marginRight = 0, this.drawablePadding = 10, this.border_radius = 0, this.enableOverlay = true, //是否支持水波纹效果,不过这个效果对比InkWell原生比较克制,推荐开启 this.fontWeight = FontWeight.w400, }) : super(key: key); final Function() onTap; final String? image_path; final double? image_width; final double? image_height; final String title; final Color title_color; final double title_size; final Color backgroundColor; final double border_radius; final double paddingLeft, paddingTop, paddingRight, padingBottom; final double marginLeft, marginTop, marginRight, marginBottom; final double drawablePadding; final bool enableOverlay; final FontWeight fontWeight; @override Widget build(BuildContext context) { return Container( margin: EdgeInsets.fromLTRB(marginLeft, marginTop, marginRight, marginBottom), child: Material( borderRadius: BorderRadius.circular(border_radius), color: backgroundColor, child: InkWell( onTap: onTap, overlayColor: MaterialStateProperty.resolveWith((states) { return enableOverlay ? DarkThemeUtil.multiColors(title_color)?.withOpacity(0.12) : Colors.transparent; }), customBorder: RoundedRectangleBorder(borderRadius: BorderRadius.circular(11)), child: Padding( padding: EdgeInsets.fromLTRB(paddingLeft, paddingTop, paddingRight, padingBottom), child: Row( children: [ image_path == null ? const SizedBox() : MyLoadImage( image_path!, width: image_width, height: image_height, ), SizedBox( width: drawablePadding, ), Expanded( child: Text( title, style: TextStyle(color: title_color, fontSize: title_size,fontWeight: fontWeight), )), MyLoadImage( Assets.baseLibBlackBack, width: 5.5, height: 9.5, ) ], ), ), ), ), ); } }