Flutter 标签类控件大全Chip

Flutter 标签类控件大全Chip,第1张

概述老孟导读:Flutter内置了多个标签控件,但本质上它们都是同一个控件,只不过是属性参数不同而已,在学习的过程中可以将其放在放在一起学习,方便记忆。 RawChip Material风格标签控件,此

老孟导读:Flutter内置了多个标签类控件,但本质上它们都是同一个控件,只不过是属性参数不同而已,在学习的过程中可以将其放在放在一起学习,方便记忆。

RawChip

Material风格标签控件,此控件是其他标签控件的基类,通常情况下,不会直接创建此控件,而是使用如下控件:

ChipinputChipChoiceChipFilterChipActionChip

如果你想自定义标签类控件时通常使用此控件。

RawChip可以通过设置onSelected@H_419_29@被选中,设置onDeleted@H_419_29@被删除,也可以通过设置onpressed@H_419_29@而像一个按钮,它有一个label@H_419_29@属性,有一个前置(avatar@H_419_29@)和后置图标(deleteIcon@H_419_29@)。

基本用法如下:

RawChip(  label: Text('老孟'),)@H_419_29@

效果如下:

禁用状态设置:

RawChip(  label: Text('老孟'),isEnabled: false,)@H_419_29@

效果如下:

设置左侧控件,一般是图标:

RawChip(  avatar: CircleAvatar(    child: Text('孟'),),label: Text('老孟'),)@H_419_29@

效果如下:

设置label的样式和内边距:

RawChip(  label: Text('老孟'),labelStyle: TextStyle(color: colors.blue),labelpadding: EdgeInsets.symmetric(horizontal: 10),)@H_419_29@

效果如下:

设置删除相关属性:

RawChip(  label: Text('老孟'),onDeleted: (){    print('onDeleted');  },deleteIcon: Icon(Icons.delete),deleteIconcolor: colors.red,deletebuttontooltipMessage: '删除',)@H_419_29@

效果如下:

点击删除图标,回调onDeleted@H_419_29@。

设置形状、背景颜色及内边距:

RawChip(  label: Text('老孟'),shape: RoundedRectangleborder(borderRadius: borderRadius.circular(10)),backgroundcolor: colors.blue,padding: EdgeInsets.symmetric(vertical: 10),)@H_419_29@

效果如下:

设置阴影:

RawChip(  label: Text('老孟'),elevation: 8,shadowcolor: colors.blue,)@H_419_29@

效果如下:

materialTapTargetSize@H_419_29@属性控制最小点击区域,详情查看:MaterialTapTargetSize

设置选中状态、颜色:

bool _selected = false;RawChip(  label: Text('老孟'),selected: _selected,onSelected: (v){    setState(() {      _selected = v;    });  },selectedcolor: colors.blue,selectedShadowcolor: colors.red,)@H_419_29@

效果如下:

设置选中状态下“前置对勾”图标:

RawChip(  label: Text('老孟'),selected: true,showcheckmark: true,checkmarkcolor: colors.red,)@H_419_29@

效果如下:

showcheckmark@H_419_29@为false时,无“前置对勾”图标。

设置点击属性:

RawChip(  label: Text('老孟'),onpressed: (){    print('onpressed');  },pressElevation: 12,)@H_419_29@

效果如下:

点击时有水波纹效果。

Chip

Chip是一个简单的标签控件,仅显示信息和删除@H_419_29@相关属性,是一个简化版的RawChip,用法和RawChip一样。源代码如下:

@overrIDeWidget build(BuildContext context) {  assert(deBUGCheckHasMaterial(context));  return RawChip(    avatar: avatar,label: label,labelStyle: labelStyle,labelpadding: labelpadding,deleteIcon: deleteIcon,onDeleted: onDeleted,deleteIconcolor: deleteIconcolor,deletebuttontooltipMessage: deletebuttontooltipMessage,tapEnabled: false,shape: shape,clipBehavior: clipBehavior,focusNode: focusNode,autofocus: autofocus,backgroundcolor: backgroundcolor,padding: padding,materialTapTargetSize: materialTapTargetSize,elevation: elevation,shadowcolor: shadowcolor,isEnabled: true,);}@H_419_29@
inputChip

以紧凑的形式表示一条复杂的信息,例如实体(人,地方或事物)或对话文本。

inputChip 本质上也是RawChip,用法和RawChip一样。源代码如下:

@overrIDeWidget build(BuildContext context) {  assert(deBUGCheckHasMaterial(context));  return RawChip(    avatar: avatar,onSelected: onSelected,onpressed: onpressed,pressElevation: pressElevation,selected: selected,tapEnabled: true,Disabledcolor: Disabledcolor,selectedcolor: selectedcolor,tooltip: tooltip,selectedShadowcolor: selectedShadowcolor,showcheckmark: showcheckmark,checkmarkcolor: checkmarkcolor,isEnabled: isEnabled && (onSelected != null || onDeleted != null || onpressed != null),avatarborder: avatarborder,);}@H_419_29@
ChoiceChip

允许从一组选项中进行单个选择,创建一个类似于单选按钮的标签,本质上ChoiceChip也是一个RawChip,ChoiceChip本身不具备单选属性。

单选demo如下:

int _selectIndex = 0;Wrap(  spacing: 15,children: List.generate(10,(index) {    return ChoiceChip(      label: Text('老孟 $index'),selected: _selectIndex == index,onSelected: (v) {        setState(() {          _selectIndex = index;        });      },);  }).toList(),)@H_419_29@

效果如下:

本控件由共建者普通程序员提供。

FilterChip

FilterChip可以作为过滤标签,本质上也是一个RawChip,用法如下:

List<String> _filters = [];Column(  children: <Widget>[    Wrap(      spacing: 15,(index) {        return FilterChip(          label: Text('老孟 $index'),selected: _filters.contains('$index'),onSelected: (v) {            setState(() {              if(v){                _filters.add('$index');              }else{                _filters.removeWhere((f){                  return f == '$index';                });              }            });          },);      }).toList(),Text('选中:${_filters.join(',')}'),],)@H_419_29@

效果如下:

ActionChip

显示与主要内容有关的一组动作,本质上也是一个RawChip,用法如下:

ActionChip(    avatar: CircleAvatar(      backgroundcolor: colors.grey.shade800,child: Text('孟'),onpressed: () {      print("onpressed");    })@H_419_29@

效果如下:

效果很像按钮类控件。

交流

老孟Flutter博客地址(近200个控件用法):http://laomengit.com

欢迎加入Flutter交流群(微信:laomengit)、关注公众号【老孟Flutter】:

总结

以上是内存溢出为你收集整理的Flutter 标签类控件大全Chip全部内容,希望文章能够帮你解决Flutter 标签类控件大全Chip所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1000387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)