flutter获取验证码输入框组件

本文介绍了一个基于Flutter的验证码输入框组件,该组件来源于作者之前关于自定义样式输入框的工作。文章提供了代码示例,并附有组件的预览展示。

代码

import 'package:flutter/material.dart';

class ValidataInputBoxWidget extends StatefulWidget {
  ValidataInputBoxWidget({Key key, this.onChange, this.icon,this.getValidata}) : super(key: key);

  final IconData icon; //输入框icon materialIcon
  final onChange; //输入框change事件
  final getValidata;//点击获取验证码按钮事件

  @override
  State<StatefulWidget> createState() {
    return ValidataInputBoxWidgetBuilder();
  }
}

class ValidataInputBoxWidgetBuilder extends State<ValidataInputBoxWidget> {
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.only(left: 10.0),
      margin: EdgeInsets.only(bottom: 30.0),
      decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(100.0),//圆角
          border: Border.all(//边框
              width: 1.0,
              style: BorderStyle.solid,
              color: Color.fromRGBO(0, 0, 0, 0.1))),
      child: Row(
        children: <Widget>[
          Expanded(
            flex: 2,
            child: TextField(
            //输入框
              onChanged: widget.onChange,
              decoration: InputDecoration(
                  border: InputBorder.none,
                  icon: widget.icon != null ? Icon(widget.icon) : null),
            ),
          ),
          Expanded(
            flex: 1,
            child: Container(
            //获取验证码按钮
              decoration: BoxDecoration(
                  color: Color(0xff0099ff),
                  borderRadius: BorderRadius.only(
                      bottomRight: Radius.circular(80.0),
                      topRight: Radius.circular(80.0))),
              child: FlatButton(
                shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.only(
                        bottomRight: Radius.circular(80.0),
                        topRight: Radius.circular(80.0))),
                child: Text('获取验证码',style: TextStyle(color:Colors.white),),
                onPressed: widget.getValidata,
              ),
            ),
          )
        ],
      ),
    );
  }
}

说明

这个组件脱胎于上一篇flutter 自定义样式输入框

预览

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值