概述
本文将介绍一个新的内容,侧滑删除,这在列表项中应用比较广泛,他就是Dismissible,想当然是一个widget,你可以想到它肯定不止可以用在列表项中,任何一个widget作为他的子项都可以实现滑动删除,这在Android中我们通常需要自定义控件来实现,但是在Flutter中.
gif太麻烦看下静态效果图,当然你可以脑补一下.
直接看代码,新内容都添加了注释
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
/**
* 侧滑删除
*/
void main() {
runApp(new MaterialApp(
title: "",
home: new MyApp(
items: new List<String>.generate(20, (i) => "Item ${i + 1}"),
)));
}
class MyApp extends StatelessWidget {
final List<String> items;
MyApp({Key key, @required this.items}) : super(key: key);
@override
Widget build(BuildContext context) {
final title = "Dismissing Items";
return new MaterialApp(
title: title,
home: new Scaffold(
appBar: new AppBar(
title: new Text(title),
),
body: new ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
final item = items[index];
//通过拖动来删除小部件的widget
return new Dismissible(
//如果Dismissible是一个列表项 它必须有一个key 用来区别其他项
key: new Key(item),
//在child被取消时调用
onDismissed: (direction) {
items.removeAt(index);
//这个和Android的SnackBar差不多
Scaffold.of(context).showSnackBar(
new SnackBar(content: new Text("$item dismissed")));
},
//如果指定了background 他将会堆叠在Dismissible child后面 并在child移除时暴露
background: new Container(
color: Colors.red,
),
child: new ListTile(
title: new Text("$item"),
));
},
),
),
);
}
}
这个background的类型是一个widget,注释说的大概能明白了,看下官网的介绍
最后
以上就是烂漫蜜粉为你收集整理的Flutter的菜鸟教程八:侧滑删除的全部内容,希望文章能够帮你解决Flutter的菜鸟教程八:侧滑删除所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复