You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何实现Dismissible滑动时ListTile内容置于背景下层

Flutter Dismissible与ListTile嵌套滑动效果实现方案

效果参考:
Dismissible ListTile左滑效果

方案1:最小改动调整背景设置

无需调整组件嵌套结构,仅调整背景色赋值位置即可:

  • 移除ListTile的tileColor属性,将原本要设置的 tileColor 挪到包裹Dismissible的父容器上
  • 透明背景的ListTile内容不会遮挡下层Dismissible的滑动背景,表现和设置tileColor时的滑动效果完全一致
    修改后的代码示例:
Container(
  // 原ListTile的tileColor移至此处
  color: Colors.grey,
  child: Dismissible(
    key: UniqueKey(),
    background: Container(
      decoration: BoxDecoration(
        color: cinzaIcone.withOpacity(0.5),
        borderRadius: BorderRadius.circular(15),
      ),
    ),
    child: ListTile(
      dense: true,
      minLeadingWidth: 10,
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)),
      contentPadding: const EdgeInsets.symmetric(horizontal: 10),
      leading: SizedBox(
        width: 1,
        child: Align(
          alignment: Alignment.centerLeft,
          child: Icon(
            Icons.circle,
            color: Colors.orange,
            size: 15,
          ),
        ),
      ),
      title: Text(
        "CONTRAPISO - SOLEIRAS",
        style: TextStyle(fontSize: 15, fontWeight: FontWeight.w500, color: Colors.blue),
      ),
      subtitle: Row(
        children: [
          Text("12-03-2021"),
          Text(' até '),
          Text("17-03-2021"),
        ],
      ),
    ),
  ),
)

方案2:调整嵌套层级

如果必须保留ListTile的tileColor配置,可调整组件嵌套结构:

  • 将Dismissible放在ListTile内部,包裹所有内容(leading、title、subtitle等)
  • 滑动背景会直接显示在ListTile内容的下层,无需额外调整背景属性

如果需要更灵活的滑动交互,也可使用第三方组件库flutter_slidable,支持直接自定义滑动层与内容层的层级关系,无需手动调整原生组件的嵌套逻辑。

内容的提问来源于stack exchange,提问作者Alan Cesar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:15:03