首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态添加的微件仅在路由更改后才起作用

动态添加的微件仅在路由更改后才起作用
EN

Stack Overflow用户
提问于 2019-09-29 05:26:17
回答 2查看 32关注 0票数 0

我在SliverList中使用flutter Slidable小部件,其中的列表元素是从数组中拉出的。我使用setState来更新列表。

我遇到的问题是,在列表更新之后,我可以正确地看到所有新元素,但滑动功能不起作用。但是,在使用push进入新页面并使用pop离开后,可滑动功能开始工作。

为什么会发生这种情况?

代码语言:javascript
复制
return SliverList(
  delegate: SliverChildBuilderDelegate(
        (context, index) => Card(
      child: InkWell(
        child: Slidable(
          key: Key(_fileList[index].key),
          actionPane: SlidableDrawerActionPane(),
          child: Container(
            child: ListTile(
              onTap: () {
                ...
              },
              title: Text(_fileList[index].subtitle),
              subtitle: Text(_fileList[index].subtitle),
            ),
          ),
          secondaryActions: <Widget>[
            IconSlideAction(
                caption: 'Delete',
                color: Colors.red,
                icon: Icons.delete,
                onTap: () {
                  ...
                }
            ),
          ],
        ),
      ),
    ),
    childCount: _fileList.length,
  ),
);

更新过程如下所示:

代码语言:javascript
复制
setState(() {
  _fileList = newFileList;
});
EN

Stack Overflow用户

回答已采纳

发布于 2021-03-09 08:59:38

没关系,我不小心禁用了SlidableController,然后又重新启用了它。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58150425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档