iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Flutter怎么实现滑动块验证码功能
  • 853
分享到

Flutter怎么实现滑动块验证码功能

2023-06-29 15:06:59 853人浏览 独家记忆
摘要

这篇文章主要介绍“Flutter怎么实现滑动块验证码功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter怎么实现滑动块验证码功能”文章能帮助大家解决问题。本文实现的是一个用于登录时,向右

这篇文章主要介绍“Flutter怎么实现滑动块验证码功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter怎么实现滑动块验证码功能”文章能帮助大家解决问题。

本文实现的是一个用于登录时,向右滑动滑动块到最右边完成验证的一个功能。当滑动未到最右边时,滑动块回弹回左边起始位置。

Flutter怎么实现滑动块验证码功能

import 'package:flutter/material.dart'; class SlideVerifyWidget extends StatefulWidget{   /// 背景色  final Color backgroundColor;  /// 滑动过的颜色  final Color slideColor;  /// 边框颜色  final Color borderColor;   final double height;  final double width;   final VoidCallback verifySuccessListener;   const SlideVerifyWidget({    Key key,    this.backgroundColor = Colors.blueGrey,    this.slideColor = Colors.green,    this.borderColor = Colors.grey,    this.height = 44,    this.width = 240,    this.verifySuccessListener  }) : super(key: key);   @override  State<StatefulWidget> createState() {    return SlideVerifyState();  } } class SlideVerifyState extends State<SlideVerifyWidget> with TickerProviderStateMixin{   double height;  double width ;   double sliderDistance = 0;   double initial = 0.0;   /// 滑动块宽度  double sliderWidth = 64;   /// 验证是否通过,滑动到最右方为通过  bool verifySuccess = false;   /// 是否允许拖动  bool enableSlide = true;   AnimationController _animationController;  Animation _curve;   @override  void initState() {    super.initState();    this.width = widget.width;    this.height = widget.height;    _initAnimation();  }   @override  void dispose() {    _animationController?.dispose();    super.dispose();  }    @override  Widget build(BuildContext context) {    return GestureDetector(      onHorizontalDragStart: (DragStartDetails details){        if(!enableSlide){          return;        }        initial = details.globalPosition.dx;      },      onHorizontalDragUpdate: (DragUpdateDetails details){        if(!enableSlide){          return;        }        sliderDistance = details.globalPosition.dx - initial;        if(sliderDistance < 0){          sliderDistance = 0;        }        /// 当滑动到最右边时,通知验证成功,并禁止滑动        if(sliderDistance > width - sliderWidth){          sliderDistance = width - sliderWidth;          enableSlide = false;          verifySuccess = true;          if(widget.verifySuccessListener != null){            widget.verifySuccessListener();          }        }        setState(() {        });      },      onHorizontalDragEnd: (DragEndDetails details){        /// 滑动松开时,如果未达到最右边,启动回弹动画        if(enableSlide){          enableSlide = false;          _animationController.forward();        }      },      child: Container(        height: height,        width: width,        decoration: BoxDecoration(          color: widget.backgroundColor,          border: Border.all(color: widget.borderColor),            /// 圆角实现          borderRadius: BorderRadius.all(new Radius.circular(height))        ),        child: Stack(          children: <Widget>[            Positioned(              top: 0,              left: 0,              child: Container(                height: height - 2,                /// 当slider滑动到距左边只有两三像素距离时,已滑动背景会有一点点渲染出边框范围,                /// 因此当滑动距离小于1时,直接将宽度设置为0,解决滑动块返回左边时导致的绿色闪动,但如果是缓慢滑动到左边该问题仍没解决                width: sliderDistance < 1? 0 : sliderDistance + sliderWidth / 2,                decoration: BoxDecoration(                    color: widget.slideColor,                    /// 圆角实现                    borderRadius: BorderRadius.all(new Radius.circular(height / 2))                ),              ),            ),            Center(              child: Text(verifySuccess?"验证成功":"请按住滑块,拖动到最右边", style: TextStyle(color: verifySuccess?Colors.white:Colors.black54, fontSize: 14),),            ),            Positioned(              top: 0,              /// 此处将sliderDistance距离往左偏2是解决当滑动块滑动到最右边时遮挡外部边框              left: sliderDistance > sliderWidth ? sliderDistance - 2 : sliderDistance,              child: Container(                width: sliderWidth,                height: height - 2 ,                alignment: Alignment.center,                decoration: BoxDecoration(                    color: Colors.white,                    border: Border.all(color: widget.borderColor),                    /// 圆角实现                    borderRadius: BorderRadius.all(new Radius.circular(height))                ),                child: Row(                  mainAxisAlignment: MainAxisAlignment.center,                  children: <Widget>[                    SizedBox(width: 6,),                    Image.asset("assets/images/ic_safety.png", height: 24, width: 24,),                    Image.asset("assets/images/ic_next_primary.png", height: 16, width: 16,),                    /// 因为向右箭头有透明边距导致两个箭头间隔过大,因此将第二个箭头向左偏移,如果切图无边距则不用偏移                    TransfORM(                      transform: Matrix4.translationValues(-8, 0, 0),                      child: Image.asset("assets/images/ic_next_primary.png", height: 16, width: 16,),                    ),                  ],                ),              ),            )          ],        ),      ),    );  }   /// 回弹动画  void _initAnimation(){    _animationController = AnimationController(        duration: const Duration(milliseconds: 300), vsync: this);    _curve = CurvedAnimation(parent: _animationController, curve: Curves.easeOut);    _curve.addListener(() {      setState(() {        sliderDistance = sliderDistance - sliderDistance * _curve.value;        if(sliderDistance <= 0){          sliderDistance = 0;        }      });    });    _animationController.addStatusListener((status) {      if(status == AnimationStatus.completed){        enableSlide = true;        _animationController.reset();      }    });  } }

关于“Flutter怎么实现滑动块验证码功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Flutter怎么实现滑动块验证码功能

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flutter怎么实现滑动块验证码功能
    这篇文章主要介绍“Flutter怎么实现滑动块验证码功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter怎么实现滑动块验证码功能”文章能帮助大家解决问题。本文实现的是一个用于登录时,向右...
    99+
    2023-06-29
  • Flutter实现滑动块验证码功能
    Flutter实现滑动块验证码功能,供大家参考,具体内容如下 本文实现的是一个用于登录时,向右滑动滑动块到最右边完成验证的一个功能。当滑动未到最右边时,滑动块回弹回左边起始位置。 ...
    99+
    2022-11-13
  • SpringBoot实现滑块验证码验证登陆校验功能详解
    目录前言一、实现效果二、实现思路三、实现步骤1. 后端 java 代码1.1 新建一个拼图验证码类1.2 新建一个拼图验证码工具类1.3 新建一个 service 类1.4 新建一个...
    99+
    2022-11-13
  • C#滑动验证码拼图验证功能实现(SlideCaptcha)
    目录使用背景:实现分析:后端代码:准备:使用:前端代码:结语:使用背景: 关于滑动验证码的使用场所还是非常多的,如:调取短信接口之前,和 注册请求之前 或者 频繁会调用的接口都需要加...
    99+
    2022-11-13
  • JS怎么实现滑块验证码
    本篇内容介绍了“JS怎么实现滑块验证码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!style*{   &nb...
    99+
    2023-07-05
  • Vue实现滑动验证功能
    用Vue实现滑动验证码,鼠标点击滑动验证,验证成功之后会显示验证通过。 程序分析 1、鼠标的点击2、滑块的拖动3、未验证之前滑动条上显示的文字4、滑块箭头指向Vue函数5、判断是否拖...
    99+
    2022-11-13
  • Android 如何实现滑块拼图验证码功能
    本篇内容主要讲解“Android 如何实现滑块拼图验证码功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android 如何实现滑块拼图验证码功能”吧!本篇主要从两方面进行介绍:使用依赖库实现...
    99+
    2023-06-14
  • 怎么用JavaScript实现滑块验证码
    本篇内容主要讲解“怎么用JavaScript实现滑块验证码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用JavaScript实现滑块验证码”吧!效果:鼠标在底部滑块上按下按住不松拖动可以移...
    99+
    2023-06-25
  • JavaScript实现滑块验证码
    本文实例为大家分享了JavaScript实现滑块验证码的具体代码,供大家参考,具体内容如下 效果:鼠标在底部滑块上按下按住不松拖动可以移动滑块,上面大图里面带有小图背景的滑块也会跟随...
    99+
    2022-11-12
  • 使用python 怎么实现一个滑块验证码识别功能
    今天就跟大家聊聊有关使用python 怎么实现一个滑块验证码识别功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。普通滑动验证import timefrom se...
    99+
    2023-06-14
  • Android 简单的实现滑块拼图验证码功能
    目录实现过程:接下来我们对这个库进行介绍:实现滑块拼图验证码功能之前已经写过一篇了,上一篇使用的是自定义控件的方式实现这个功能,主要还是想让童鞋们知其然更知其所以然,还没看的童鞋可以...
    99+
    2022-11-11
  • JavaScript实现拖动滑块拼图验证功能(html5、canvas)
    引言: 滑块拖动验证现在很多地方都用到,周末就琢磨着写了一个,放上来,看看有没有人用得上! 效果: 实现思路:  用一张画布绘制源图,再绘制一个填充的方形,这样就可以达到...
    99+
    2022-11-11
  • JavaScript实现拼图式滑块验证功能
    目录演示前戏源码介绍主页样式设计滑块验证部分img_ver内部演示 前戏 滑块验证码是在网站、APP等应用中常见的一种验证方式,通过按照一定规则滑动滑块到指定位置完成验证,才可以进...
    99+
    2022-11-13
  • js canvas如何实现滑块验证功能
    本篇内容主要讲解“js canvas如何实现滑块验证功能 ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js canvas如何实现滑块验证功能 ”吧!滑块验证内容如下话不多说先上代码想用的小伙伴...
    99+
    2023-06-14
  • vue实现移动滑块验证
    本文实例为大家分享了vue实现移动滑块验证的具体代码,供大家参考,具体内容如下 记录一下今天的学习内容 <div class="solidBox" :class="{'so...
    99+
    2022-11-13
  • JS实现拖动滑块验证
    使用这种验证方法的目的:证明当前的用户不是机器人~防止恶意操作。 实现思路: 1、获取silde滑块(获取元素) 2、为元素注册事件———鼠标点击...
    99+
    2022-11-13
  • vue实现图片滑动验证功能
    图片滑动验证,是目前比较常见的验证方式,主要目的是防止用户利用机器人自动注册、登录、灌水。 目前vue技术日趋成熟,已经有专门针对图片滑动验证功能的插件了。具体使用方式如下: 1....
    99+
    2022-11-13
  • Vue如何实现滑动验证功能
    这篇文章主要介绍了Vue如何实现滑动验证功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用Vue实现滑动验证码,鼠标点击滑动验证,验证成功之后会显示验证通过。程序分析鼠标的...
    99+
    2023-06-29
  • 如何使用JavaScript实现滑块验证功能
    这篇文章将为大家详细讲解有关如何使用JavaScript实现滑块验证功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下<!DOCTYPE html><html&nb...
    99+
    2023-06-26
  • Python实现滑块验证码详解
    本节要讲解如下图所示的滑块验证码(更为复杂的滑动拼图验证码在下一篇介绍)。这种验证码机制比较简单:将滑块拖动到滑轨的最右端即可完成验证,如下图所示。如果未将滑块拖动到滑轨的最右端,则...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作