Flutter 单击以删除时从ListView生成器中删除容器
ListView生成器生成容器。在容器内部,它有另一个容器来移除第一个容器。 我已经试过用Dismissible,但没用。。。这个问题很相似,但我无法申请我的代码: 希望有人能帮忙:)) 代码如下:Flutter 单击以删除时从ListView生成器中删除容器,flutter,listview,dart,Flutter,Listview,Dart,ListView生成器生成容器。在容器内部,它有另一个容器来移除第一个容器。 我已经试过用Dismissible,但没用。。。这个问题很相似,但我无法申请我的代码: 希望有人能帮忙:)) 代码如下: ListView.builder( scrollDirection: Axis.horizontal, shrinkWrap: true, padding
ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
padding: EdgeInsets.only(bottom: 10),
itemCount:
snapshot.data != null ? snapshot.data.length : 0,
itemBuilder: (BuildContext context, int index) {
OrdersModel orderItem = snapshot.data[index];
return InkWell(
//onTap
child: Container(
padding: EdgeInsets.only(
bottom: 10, top: 10, left: 5, right: 5),
margin: EdgeInsets.only(left: 5, right: 15),
width: 187,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(20),
),
color: Colors.white,
boxShadow: [
BoxShadow(
color: Colors.grey,
blurRadius: 0.5,
),
],
),
child: Column(
children: [
Container(
child: Material(
borderRadius: BorderRadius.all(
Radius.circular(10),
),
color: Color(0xffeb5c68),
child: InkWell(
splashColor: Color(0xffda1b2b),
borderRadius: BorderRadius.all(
Radius.circular(10),
),
child: SizedBox(
width: 220,
height: 40,
child: Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Text(
"REMOVE ${orderItem.number}",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
),
),
],
),
),
onLongPress: () async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
OrderDetailsPage(),
),
);
},
),
),
),
],
),
),
onTap: () {},
);
},
);
您可以在解决方案中使用
Dismissible
您可能只需在列表项中调用snapshot.data.removeAt(index),如下所示:
ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
final item = items[index];
return ListTile(title: Text('$item --- Click to remove me'),onTap:(){
setState(() {
items.removeAt(index);
});
});
},
),
它只是刷新页面,而不是删除容器!这里有一个功能示例:D您可以试穿它