当前位置: 首页 > news >正文

古风网站的关于我们页面怎么做房地产最新消息2022

古风网站的关于我们页面怎么做,房地产最新消息2022,推广分享,检测网站死链如何实现一个双向PK进度条 在Flutter应用中#xff0c;进度条是一个非常常见的组件。而双向PK进度条则能够展示两个对立的数值#xff0c;如对战中的双方得分对比等。本文将介绍如何实现一个具有双向PK效果的进度条#xff0c;并支持竖直和斜角两种过渡效果。 1. 需求 我…如何实现一个双向PK进度条 在Flutter应用中进度条是一个非常常见的组件。而双向PK进度条则能够展示两个对立的数值如对战中的双方得分对比等。本文将介绍如何实现一个具有双向PK效果的进度条并支持竖直和斜角两种过渡效果。 1. 需求 我们需要一个自定义的双向PK进度条要求如下 能够显示两个对立的数值。进度条两端有圆角。中间过渡部分可以是竖直或者45度斜角。支持自定义颜色和高度。 2. 效果 通过我们的实现可以得到如下效果 3. 实现思路 定义组件创建一个自定义的PKProgressBar组件包含左右两侧的数值、颜色、高度和过渡类型。绘制左侧和右侧的圆角矩形使用CustomPainter来绘制左右两部分的圆角矩形。处理中间过渡部分根据过渡类型绘制竖直或者45度斜角的过渡效果。 4. 实现代码 下面是实现双向PK进度条的完整代码 import package:flutter/material.dart;void main() runApp(MyApp());class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: const Text(双向PK进度条)),body: const Center(child: Padding(padding: EdgeInsets.symmetric(horizontal: 16),child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [PKProgressBar(leftValue: 75,rightValue: 150,leftColor: Colors.blue,rightColor: Colors.red,height: 20,transitionType: TransitionType.diagonal, // 设置过渡类型为斜角),SizedBox(height: 50),PKProgressBar(leftValue: 90,rightValue: 55,leftColor: Colors.brown,rightColor: Colors.green,height: 20,transitionType: TransitionType.vertical, // 设置过渡类型为竖直),],),)),),);} }// 定义过渡类型枚举 enum TransitionType { vertical, diagonal }class PKProgressBar extends StatelessWidget {final double leftValue;final double rightValue;final Color leftColor;final Color rightColor;final double height;final TransitionType transitionType;const PKProgressBar({super.key,required this.leftValue,required this.rightValue,required this.leftColor,required this.rightColor,this.height 20.0,this.transitionType TransitionType.diagonal, // 默认过渡类型为斜角});overrideWidget build(BuildContext context) {return CustomPaint(size: Size(double.infinity, height),painter: PKProgressPainter(leftValue: leftValue,rightValue: rightValue,leftColor: leftColor,rightColor: rightColor,transitionType: transitionType,),);} }class PKProgressPainter extends CustomPainter {final double leftValue;final double rightValue;final Color leftColor;final Color rightColor;final TransitionType transitionType;PKProgressPainter({required this.leftValue,required this.rightValue,required this.leftColor,required this.rightColor,required this.transitionType,});overridevoid paint(Canvas canvas, Size size) {final paint Paint()..style PaintingStyle.fill;final double totalValue leftValue rightValue;final double leftWidth (leftValue / totalValue) * size.width;final double rightWidth (rightValue / totalValue) * size.width;final double radius size.height / 2;// 左侧带圆角的矩形final leftRRect RRect.fromLTRBAndCorners(0,0,leftWidth,size.height,topLeft: Radius.circular(radius),bottomLeft: Radius.circular(radius),);// 右侧带圆角的矩形final rightRRect RRect.fromLTRBAndCorners(leftWidth,0,size.width,size.height,topRight: Radius.circular(radius),bottomRight: Radius.circular(radius),);// 绘制左侧部分paint.color leftColor;canvas.drawRRect(leftRRect, paint);// 绘制右侧部分paint.color rightColor;canvas.drawRRect(rightRRect, paint);// 根据过渡类型绘制中间部分if (transitionType TransitionType.vertical) {// 竖直过渡final middleRect Rect.fromLTWH(leftWidth - radius,0,2 * radius,size.height,);paint.color rightColor;canvas.drawRect(middleRect, paint);} else if (transitionType TransitionType.diagonal) {// 斜角过渡形成45度斜线final leftPath Path()..moveTo(leftWidth - size.height / 2, 0)..lineTo(leftWidth size.height / 2, size.height)..lineTo(leftWidth - size.height / 2, size.height)..close();paint.color leftColor;canvas.drawPath(leftPath, paint);// 斜角过渡形成45度斜线final rightPath Path()..moveTo(leftWidth - size.height / 2, 0)..lineTo(leftWidth, 0)..lineTo(leftWidth, size.height)..close();paint.color rightColor;canvas.drawPath(rightPath, paint);}}overridebool shouldRepaint(covariant CustomPainter oldDelegate) {return false;} }在这个实现中我们通过CustomPainter来自定义绘制PK进度条并根据过渡类型绘制竖直或斜角的过渡效果。通过这些代码你可以轻松实现一个具有双向PK效果的进度条并根据需求调整样式和效果。
http://www.hyszgw.com/news/111587/

相关文章:

  • 信息网站开发合同怎么提交网站
  • 网站开发的完整流程图wordpress邮件代发送
  • 班级网站开发环境asp手机网站统计代码
  • 红色网站建设的比较好的高校2万元自己动手装修房子
  • 备案网站资料上传教程计算机一级考试网站怎么做
  • 网站系统建设招标文件传奇类型的网游
  • 乐清品牌网站建设wordpress cron api
  • 南京网站建设王道下拉??怎么建立一个网站卖东西
  • 邵阳市建设工程造价管理站网站国内wordpress案例
  • 芜湖网站建设费用wordpress企业主题哪个好
  • 河北企业网站制作wordpress 仿站命令
  • 如何设置网站名字合肥专门做网站的公司
  • 东台市住房和建设局网站wordpress相关推荐代码
  • 出口跨境电子商务seo工作流程图
  • 瀑布流资源网站模板软件开发工程师考核指标
  • 网站建设怎么添加评论同城便民网站开发
  • 如何自己建立自己的网站php 视频网站开发
  • 免费购物商城网站建设seo推广什么意思
  • 做网站宣传费用记什么科目合肥网站建设之4个细节要注意事项
  • 大连网站策划企业官方网站应该怎么样建设
  • 网站搜索栏建立seo推广联系方式
  • 西青房地产网站建设o2o网站大全
  • 网站的建设费用预算本地唐山网站建设
  • 免费推广网站推荐wordpress适合下载站的主题
  • 珠海建设网站淮安网站建设多少钱
  • 清远网站开发大型网站建设济南兴田德润o团队怎么样
  • wordpress 基础seo建站中山网站制作服务
  • 北京网站优化站优化wordpress开发手册
  • 网站建设所需人力山东省建筑施工企业安全员c证
  • 贵州住房建设厅网站西樵乐从网站建设