简介
输入型chip
- 以紧凑的形式表现复杂的信息,例如:实体(人,地点,或者事物)或者会话文本
基本用法
- inputChip可以通过设置进行选择onSelected,通过设置onDeleted可以删除,并且可以通过OnPressed表现按压效果
- inputChip 有一个前导图标和尾随图标,填充颜色可以订制
- inputChip 可以和其他UI元素搭配使用,比如:wrap,ListView(scrollDirection为Axis.horizontal)
实例演示
import 'package:flutter/material.dart';
class FilterChipDemo extends StatefulWidget {
_FilterChipDemoState createState() => _FilterChipDemoState();
}
class InputEntry{
final String name;
final String initials;
const InputEntry(this.name,this.initials);
}
class _FilterChipDemoState extends State<FilterChipDemo> {
final List<InputEntry> _lists=<InputEntry>[
const InputEntry('android', 'A'),
const InputEntry('java', 'J'),
const InputEntry('php', 'P'),
const InputEntry('web', 'W'),
];
List<InputEntry> _inputLists=<InputEntry>[];
Iterable<Widget> get inputWidget sync*{
for(InputEntry value in _lists){
_inputLists.add(value);
yield Padding(
padding: const EdgeInsets.all(4.0),
child: InputChip(
avatar: CircleAvatar(
backgroundColor: Colors.redAccent.shade400,
child: Text(value.initials),
),
label: Text(value.name),
onDeleted: (){
setState(() {
_lists.remove(value);
});
},
),
);
}
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Wrap(
children: inputWidget.toList(),
),
// InputChip(
// label: Text('刷新'),
// onSelected: (bool value){
// },
// )
],
);
}
}