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

使用Slidable组件实现滑动列表项时遇Scrollable祖先缺失错误

解决Slidable组件的Scrollable.of()调用错误

错误原因

Slidable的滑动逻辑依赖Scrollable组件提供的上下文,当前代码将Slidable直接放在Center内,没有包裹在可滚动容器中,导致无法找到Scrollable上下文,触发报错:Scrollable.of() was called with a context that does not contain a Scrollable widget。

修改后的代码

import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart';

void main(List<String> args) {
  runApp(
    const MaterialApp(
      home: MyWidget(),
    ),
  );
}

class MyWidget extends StatefulWidget {
  const MyWidget({super.key});

  @override
  State<MyWidget> createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        children: [
          Slidable(
            startActionPane: ActionPane(
              motion: const StretchMotion(),
              children: [
                SlidableAction(onPressed: ((context) {}), icon: Icons.waves),
              ],
            ),
            child: Container(
              color: Colors.grey,
              child: const ListTile(
                leading: Icon(Icons.newspaper),
                title: Text("New List Tile"),
              ),
            ),
          ),
        ],
      ),
    );
  }
}

关键修改点

  • 将Slidable包裹在ListView(或SingleChildScrollView)中,为其提供Scrollable上下文,满足滑动交互的依赖要求。
  • 若需实现多列表项滑动,直接在ListView的children中添加更多Slidable组件即可,匹配你期望的效果。

错误截图:错误提示
期望效果:滑动列表效果


内容的提问来源于stack exchange,提问作者A. Rokbi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:53:26