返回顶部
首页 > 资讯 > 移动开发 >AndroidFlutter实现兴趣标签选择功能
  • 124
分享到

AndroidFlutter实现兴趣标签选择功能

AndroidFlutter标签选择功能Android标签选择Flutter标签 2022-11-13 19:11:49 124人浏览 安东尼
摘要

目录前言InputChip兴趣标签选择实现总结前言 我们在首次使用内容类 App 的时候,不少都会让我们选择个人偏好。这种通常是通过标签来实现,比如列举出一系列的技术栈,然后让我们选

前言

我们在首次使用内容类 App 的时候,不少都会让我们选择个人偏好。这种通常是通过标签来实现,比如列举出一系列的技术栈,然后让我们选择。通过这些标签选择可以预先知道用户的偏好信息,从而可以选择感兴趣的内容进行推送,这样会让用户快速看到想看的内容。我们本篇就来看看 Flutter 如何实现兴趣标签的选择,这可以通过 InputChip 来轻松实现。

InputChip

InputChip 类是一个简单的小组件,它的内容区左侧有一个 avatar 子组件,右侧是一个 label 组件。然后支持删除和标记选中,因此非常适合做兴趣标签的选择。下面是未选中和选中的两个状态,选中的时候会在左侧的 avatar 区域打个勾表示选中。这个组件相比我们自己去写一个类似的组件来说会简化很多。而且,多个InputChip 组件可以作为Wrap 组件的子组件,实现多个 InputChip 时自动等间距排布和超出宽度自动换行,这也恰恰是做兴趣标签所需要的。

我们来看一下 InputChip 构造方法和主要属性。

const InputChip({
  Key? key,
  this.avatar,
  required this.label,
  this.labelStyle,
  this.labelPadding,
  this.selected = false,
  this.isEnabled = true,
  this.onSelected,
  this.deleteIcon,
  this.onDeleted,
  this.deleteIconColor,
  this.deleteButtonTooltipMessage,
  this.onPressed,
  this.pressElevation,
  this.disabledColor,
  this.selectedColor,
  this.tooltip,
  this.side,
  this.shape,
  this.clipBehavior = Clip.none,
  this.focusnode,
  this.autofocus = false,
  this.backgroundColor,
  this.padding,
  this.visualDensity,
  this.materialTapTargetSize,
  this.elevation,
  this.shadowColor,
  this.selectedShadowColor,
  this.showCheckmark,
  this.checkmarkColor,
  this.avatarBorder = const CircleBorder(),
  @Deprecated(
    'Migrate to deleteButtonTooltipMessage. '
    'This feature was deprecated after v2.10.0-0.3.pre.'
  )
  this.useDeleteButtonTooltip = true,
})

属性很多,但是实际用的是下面这几个:

  • avatar:左侧的子组件,通常可以用使用圆形(如CircularAvatar)组件,注意高度是不可改的,随整个 InputChip 的高度决定;
  • label:右侧的标签组件,通常是一个文本组件,支持单行或多行文本,该组件决定了 InputChip 的高度;
  • labelPadding:标签的内边距;
  • selected:选中状态,如果是选中状态则会在左侧有个打勾的标记;
  • isEnabled:是否启用,默认是启用状态,如果禁用则选中事件的回调(onSelected)和点击事件回调(onPressed)都无法使用,但是删除是可以用的。
  • onSelected:选中状态改变时的回调函数。
  • deleteIcon:删除图标,默认是 Icons.cancel 图标。
  • onDeleted:删除事件回调。
  • onPressed:点击事件回调;
  • backgroundColorselectedColor:默认背景色和选中后背景色。

通过这些属性我们就可以构建基础的兴趣标签,比如下面的代码,这里的 item 是标签的数据实体对象,有三个属性,分别是标签名称 name,标签默认背景色color 和选中状态 selected。 当标签选中后我们将 InputChipavatar设置为 null,从而不显示 avatar

InputChip(
    labelPadding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
    backgroundColor: item.color,
    selectedColor: Colors.red[400],
    selected: item.selected,
    onSelected: (isSelected) {
      setState(() {
        item.selected = isSelected;
      });
    },
    avatar: item.selected
        ? null
        : CircleAvatar(
            backgroundColor: Colors.lightBlue,
            child: Text(
              item.name.substring(0, 1),
              style: const TextStyle(color: Colors.white),
            ),
          ),
    label: Text(
      item.name,
    ),
  )

兴趣标签选择实现

兴趣标签通常会有多个,这时候需要逐个等间距排开,超出宽度后换行。这个可以通过 Wrap 组件和 InputChip 组件实现。代码非常简单,就是将一组 InputChip 组件作为 Wrap 组件的 children 参数,然后设置 Wrap 中子组件的间距即可。

Wrap(
  spacing: 10.0,
  children: _techList
      .map(
        (item) => InputChip(
          labelPadding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
          backgroundColor: item.color,
          selectedColor: Colors.red[400],
          selected: item.selected,
          onSelected: (isSelected) {
            setState(() {
              item.selected = isSelected;
            });
          },
          avatar: item.selected
              ? null
              : CircleAvatar(
                  backgroundColor: Colors.lightBlue,
                  child: Text(
                    item.name.substring(0, 1),
                    style: const TextStyle(color: Colors.white),
                  ),
                ),
          label: Text(
            item.name,
          ),
        ),
      )
      .toList(),
),

最终我们实现的效果如下图所示。

总结

本篇介绍了 Flutter 中的 InputChip组件的使用,同时给出了如何用 InputChip实现兴趣标签的选择。在实际应用中,InputChip 还可以用于多选,在聊天会评论列表展示用户信息(头像加昵称)。可以看到,InputChip 是个非常小巧但很实用的组件。

到此这篇关于Android Flutter实现兴趣标签选择功能的文章就介绍到这了,更多相关Android Flutter标签选择内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: AndroidFlutter实现兴趣标签选择功能

本文链接: https://lsjlt.com/news/170856.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • AndroidFlutter实现兴趣标签选择功能
    目录前言InputChip兴趣标签选择实现总结前言 我们在首次使用内容类 App 的时候,不少都会让我们选择个人偏好。这种通常是通过标签来实现,比如列举出一系列的技术栈,然后让我们选...
    99+
    2022-11-13
    Android Flutter标签选择功能 Android 标签选择 Flutter 标签
  • 实现微信小程序中的标签选择功能
    实现微信小程序中的标签选择功能,需要具体代码示例随着微信小程序的流行,越来越多的开发者开始关注微信小程序的开发技术。在实际的小程序开发中,经常会遇到需要选择标签的情况,比如商品分类、兴趣爱好等。本文将详细介绍如何实现微信小程序中的标签选择功...
    99+
    2023-11-21
    微信小程序 实现 标签选择
  • HTML5如何使用video标签实现选择摄像头功能
    这篇文章主要介绍了HTML5如何使用video标签实现选择摄像头功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。详解HTML5 使用vid...
    99+
    2024-04-02
  • iOS UICollectionView实现标签选择器
    近来,在项目中需要实现一个类似兴趣标签的选择器。由于标签的文字长度不定,所以标签的显示长度就不定。为了实现效果,就使用了UICollectionView来实现了每行的标签数量不定、c...
    99+
    2022-05-15
    iOS 标签 选择器
  • AngularJS如何实现标签页tab选项卡切换功能
    这篇文章将为大家详细讲解有关AngularJS如何实现标签页tab选项卡切换功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:选项卡一:JavaScript+h...
    99+
    2024-04-02
  • AndroidFlutter基于WebSocket实现即时通讯功能
    目录前言联系人界面构建聊天界面的实现消息界面的 MultiProvider运行效果前言 我们在前面花了很大篇幅介绍 Provider 状态管理,这是因为在 Flu...
    99+
    2024-04-02
  • jquery如何实现a标签的功能
    小编给大家分享一下jquery如何实现a标签的功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 方法:1、给文本元素绑定click点击事件,并指定事件处理函数...
    99+
    2024-04-02
  • Javascript实现元素选择器功能
    本文实例为大家分享了Javascript实现元素选择器功能的具体代码,供大家参考,具体内容如下 什么是元素选择器? 用过jquery的开发者都知道,jquery封装了对元素的查找功能...
    99+
    2024-04-02
  • ajax中怎么实现标签导航功能
    ajax中怎么实现标签导航功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 主要函数:function&nb...
    99+
    2024-04-02
  • 安卓(Android)实现选择时间功能
    前言 由于大部分android初级教程都没教怎么选择时间,初学者碰到这种难免会有些不知所措,难道要让用户自己输入日期时间?先不说用户体验不好,处理用户输入各式各样的日期格式也要...
    99+
    2022-06-06
    选择 Android
  • vue实现商品规格选择功能
    本文实例为大家分享了vue实现商品规格选择的具体代码,供大家参考,具体内容如下 动手之前要先确定自己的商品数据结构,下面是我的商品数据结构 dataInfo: {         ...
    99+
    2024-04-02
  • vue实现选择商品规格功能
    本文实例为大家分享了vue实现选择商品规格功能的具体代码,供大家参考,具体内容如下 要实现上图的效果,代码如下: <template>         <div ...
    99+
    2024-04-02
  • c语言怎么实现功能选择
    在 c 语言中,可以使用 switch-case 语句实现功能选择。它允许根据提供的表达式(称为选择器)的值来执行不同的代码块。结构如下:switch (选择器) {}case 值1: ...
    99+
    2024-05-13
    c语言
  • Input标签自动校验功能去除实现
    目录自动校验解决方法解决思路多种解决方法1、ConfigProvider2、修改defaultProps3、拦截React.createElement4、全局监听input事件5、M...
    99+
    2024-04-02
  • Android组件实现列表选择框功能
    android提供的列表选择框(Spinner)相当于web端用户注册时的选择下拉框,比如注册候选择省份城市等。如下图便是一个列表选择框 下拉列表的列表选择项能够通过xml文...
    99+
    2022-06-06
    列表 选择 Android
  • Android实现从相册选择照片功能
    本文实例为大家分享了Android实现从相册选择照片功能的具体代码,供大家参考,具体内容如下 之前在 《Android开发之裁剪照片》一文中介绍过,如何从相册选取照片和拍摄照片并进行...
    99+
    2024-04-02
  • Android如何实现年月选择器功能
    目录一、效果图二、实现步骤:1、依赖库2、xml布局文件3、添加数据4、设置选择器弹出框5、设置弹出框dialog样式6、设置点击事件弹出四、总结开发过程中,年月的选择功能还是比较常...
    99+
    2024-04-02
  • CentOS中怎么实现屏幕选择功能
    这期内容当中小编将会给大家带来有关CentOS中怎么实现屏幕选择功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。[root@localhost ~]# vim load_x...
    99+
    2023-06-10
  • Android怎么实现年月选择器功能
    这篇文章给大家分享的是有关Android怎么实现年月选择器功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、效果图二、实现步骤:1、依赖库implementation 'cn.aigestu...
    99+
    2023-06-14
  • Javascript如何实现元素选择器功能
    本篇内容介绍了“Javascript如何实现元素选择器功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是元素选择器?用过jquery的...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作