Flutter实现:仅当skill_disp非空时显示IconButton
解决方案
核心是根据skill.skill_disp的内容动态控制trailing组件的显示:当字段为空时设为null(不渲染任何内容),非空时再显示IconButton。
修改后的代码如下:
return ListTile( leading: CircleAvatar(child: Text(skill.skill_id)), title: Text(skill.skill_name), subtitle: Text(skill.skill_type), // 通过三元运算符判断是否显示尾部图标按钮 trailing: skill.skill_disp.isNotEmpty ? IconButton( onPressed: () { launchUrl(Uri.parse(skill.skill_disp)); }, icon: const Icon(CupertinoIcons.videocam_circle), ) : null, // 为空时不渲染尾部组件 );
补充说明
- 三元运算符
condition ? 渲染内容 : 空内容是Flutter中动态控制组件显示的常用方式 - 将空状态下的
trailing设为null,ListTile会自动隐藏尾部区域,符合你的需求 - 给
Icon添加const关键字是可选的性能优化,避免重复创建相同图标实例
附列表项显示参考图:
内容的提问来源于stack exchange,提问作者user3806891
相关产品推荐
相关产品推荐

