ITPub博客

首页 > 应用开发 > IT综合 > 设置婚恋交友系统源码文本框按钮的不同颜色

设置婚恋交友系统源码文本框按钮的不同颜色

IT综合 作者:云豹科技晓彤 时间:2021-11-05 17:13:10 0 删除 编辑

婚恋交友系统源码是如何实现根据文本框内容设置按钮不同背景颜色,让我们一起看一下吧。

场景: 如婚恋交友系统源码登录,账号输入框还未输入任何账号时,下方的登录按钮应该置为灰色; 步骤:

  1. 设置按钮不同状态下的颜色,设置 ButtonStyle中 backgroundColor属性为 createTextBtnBgColor()。
  2. 设置按钮不可点击状态,将 TextButton的 onPressed属性为 null。
var _amountChanged = false;
TextButton(
  style: ButtonStyle(backgroundColor: createTextBtnBgColor()),
  autofocus: false,
  onPressed: _amountChanged ? () {} : null,
  child: const Text(
    "确认提现",
    style: TextStyle(
      color: Colors.white,
    ),
  ),
)

2. 构建婚恋交友系统源码不同状态的背景颜色,这里用到了扩展函数

/// 处理点击按钮背景颜色
/// 设置当前按钮为不可点击时,设置onPressed回调为null。
MaterialStateProperty<Color> createTextBtnBgColor() {
  return MaterialStateProperty.resolveWith((states) {
// If the button is pressed, return green, otherwise blue
    if (states.contains(MaterialState.pressed)) { 
      return "#ff063c91".toColor();///扩展String函数
    } else if (states.contains(MaterialState.disabled)) {
      return "#509cf6".toColor();///扩展String函数
    }
    return "#FF208FF9".toColor(); ///扩展String函数
  });
}

3. 扩展String函数

extension String2Color on String {
  Color toColor() {
    final buffer = StringBuffer();
    if (length == 6 || length == 7) buffer.write('ff');
    buffer.write(replaceFirst('#', ''));
    return Color(int.parse(buffer.toString(), radix: 16));
  }
}

这样婚恋交友系统源码文本框按钮的不同颜色就实现了。
声明:本文由云豹科技转发自yanghai博客,如有侵权请联系作者删除


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70002045/viewspace-2840866/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
音视频软件开发相关知识科普账号

注册时间:2021-06-11

  • 博文量
    163
  • 访问量
    60341