如何在Flutter中更改ReorderableListView.Builder中的图标

nr9pn0ug  于 2023-06-30  发布在  Flutter
关注(0)|答案(1)|浏览(171)

我正在创建一个列表,但是我想创建一个可以改变拖放顺序的列表,所以我使用ReorderableListView.builder创建了一个列表。
我想将每个小部件右侧的“=”形状更改为另一个图标,或者调整位置。我该怎么办?
enter image description here

ReorderableListView.builder(
          itemBuilder: (context, index) {
            final item = items!.elementAt(index);
            return GestureDetector(
              key: Key("$index"),
               onLongPress: () {
              ....
              },
              onTap: () {
              ....
                setState(() {});
              },
              child: Container(
                margin: const EdgeInsets.all(10),
                decoration: BoxDecoration(
                  boxShadow: [
                    BoxShadow(
                      color: Colors.grey.withOpacity(0.5),
                      spreadRadius: 5,
                      blurRadius: 7,
                      offset: const Offset(0, 3),
                    ),
                  ],
                  border: Border.all(),
                  borderRadius: BorderRadius.circular(10),
                  color: const Color.fromARGB(255, 60, 183, 255),
                ),
                height: 60,
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: [
                    Padding(
                      padding: const EdgeInsets.only(left: 20),
                      child: Text(
                        items!.elementAt(index).split("|")[0],
                        style: const TextStyle(fontSize: 25),
                      ),
                    ),
                    GestureDetector(
                      onTap: () {
                       ....
                      },
                      child: const Padding(
                        padding: EdgeInsets.only(right: 30),
                        child: Icon(
                          Icons.delete_forever_rounded,
                          size: 30,
                        ),
                      ),
                    ),
                  ],
                ),
              ),
            );
          },
          itemCount: items?.length ?? 0,
          onReorder: (int oldIndex, int newIndex) {
            setState(() {
              if (newIndex > oldIndex) {
                newIndex -= 1;
              }
              final item = items!.removeAt(oldIndex);
              items!.insert(newIndex, item);
              saveData();
            });
          },
        ),

我试过谷歌搜索,但我找不到一种方法来摆脱图标,但改变它。

nom7f22z

nom7f22z1#

ReorderableListView上设置buildDefaultDragHandlesfalse。此操作将删除默认句柄。
然后,在您的Row中,无论您想要的图标在哪里,ReorderableDragStartListener都将Icon作为child。这将允许拖动项目。

相关问题