123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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,
- )
- ],
- ),
- ),
- ),
- ),
- );
- }
- }
|