废话不多说上代码
class NeedsWidget {
static Widget NeedsWidgetItem(context, mData,
{Function(int id, int type,{String auditContent})? onClick}) {
return Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
InkWell(
child: Container(
width: 160.w,
height: 64.w,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Color(0xfff19149), width: 1.w),
borderRadius: BorderRadius.circular(32.r)),
child: EmptyWidget.cText('删除需求', 0xFFf19149, null, 26.sp),
),
onTap: () {
onClick(map['id'], 0);
},
),
SizedBox(width: 16.w),
InkWell(
child: Container(
width: 160.w,
height: 64.w,
margin: EdgeInsets.only(right: 33.w),
alignment: Alignment.center,
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Color(0xffeeeeee), width: 1.w),
borderRadius: BorderRadius.circular(32.r)),
child: EmptyWidget.cText('修改发布', 0xFF999999, null, 26.sp),
),
onTap: () {
onClick(map['id'], 1);
},
)
],
);
}
调用
return ListView.builder(
itemCount: mData.length,
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: () {
},
///list条目中按钮点击事件
child: NeedsWidget.NeedsWidgetItem(
context,
mData[index],
onClick: onClick,
));
});
//回调方法
onClick(int id, type,{auditContent}) async {
这里出来你的逻辑,分离了widget中只写布局,
}
觉得有帮助点个赞!!!!