flutter 星级评分

2023-10-13 10:10
文章标签 评分 flutter 星级

本文主要是介绍flutter 星级评分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关键就是使用 Stack和ClipRect配合来显示

  1. 使用Stack来重叠显示背后的灰色星和前面的红色星
  2. 使用ClipRect来全部或部分显示前面的红色星
Stack(children: <Widget>[// 显示背后的灰色星Icon(Icons.star,color: Colors.grey,),// 显示前面的红色星ClipRect(child: Align(alignment: Alignment.topLeft,widthFactor: 0.5, //从左上角开始计算,显示一半的红色星child: Icon(Icons.star,color: Colors.redAccent,),))],)

定义一个函数,根据总分和当前得分返回评分图形

List<Widget> _getGradeStar(double score, int total)

效果如下:

最后全部代码如下:

import 'package:flutter/material.dart';class GradeStart extends StatelessWidget {List<Widget> _getGradeStar(double score, int total) {List<Widget> _list = List<Widget>();for (var i = 0; i < total; i++) {double factor = (score - i);if (factor >= 1) {factor = 1.0;}else if (factor < 0){factor = 0;}Stack _st = Stack(children: <Widget>[Icon(Icons.star,color: Colors.grey,),ClipRect(child: Align(alignment: Alignment.topLeft,widthFactor: factor,child: Icon(Icons.star,color: Colors.redAccent,),))],);_list.add(_st);}return _list;}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Grade Star'),),body: Container(child: Column(children: <Widget>[Row(children: _getGradeStar(4.5, 5))],),),);}
}

原文地址:https://www.jianshu.com/p/b5e867095871

这篇关于flutter 星级评分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/202476

相关文章

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

Flutter Button使用

Material 组件库中有多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们的父类是于ButtonStyleButton。         基本的按钮特点:         1.按下时都会有“水波文动画”。         2.onPressed属性设置点击回调,如果不提供该回调则按钮会处于禁用状态,禁用状态不响应用户点击。

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题 GitHub Pages是一个直接从GitHub存储库托管的静态站点服务,‌它允许用户通过简单的配置,‌将个人的代码项目转化为一个可以在线访问的网站。‌这里使用flutter build web来构建web发布到GitHub Pages。 最近通过flutter build web,通过发布到GitHu

使用Python实现智能信用评分系统

1. 项目简介 本教程将带你一步步实现一个智能信用评分系统。我们将使用Python和一些常用的深度学习库,如TensorFlow和Keras。最终,我们将实现一个可以预测信用评分的模型。 2. 环境准备 首先,你需要安装以下库: TensorFlowKeraspandasnumpyscikit-learn 你可以使用以下命令安装这些库: pip install tensorflow

Flutter 中的低功耗蓝牙概述

随着智能设备数量的增加,控制这些设备的需求也在增加。对于多种使用情况,期望设备在需要进行控制的同时连接到互联网会受到很大限制,因此是不可行的。在这些情况下,使用低功耗蓝牙(也称为 Bluetooth LE 或 BLE)似乎是最佳选择,因为它功耗低,在我们的手机中无处不在,而且无需连接到更广泛的网络。因此,蓝牙应用程序的需求也在不断增长。 通过阅读本文,您将了解如何开始在 Flutter 中开

flutter开发多端平台应用的探索 下 (跨模块、跨语言通信之平台通道)

前文 Flutter 是一个跨平台的开发框架,它允许开发者使用相同的代码库来构建 iOS、Android、Web 和桌面应用程序。 上文flutter开发多端平台应用的探索 上(基本操作)-CSDN博客列举了一些特定平台的case(桌面端菜单,鼠标快捷键)的使用方法,有些是flutter提供了对应能力,只需要学习如何调API,有些事三方库支持,本文要探讨的平台通道是更为强大的工具,很多三方插件

Flutter-使用dio插件请求网络(get ,post,下载文件)

引入库:dio: ^2.1.13可直接运行的代码:包含了post,get 下载文件import 'package:flutter/material.dart';import 'package:dio/dio.dart';void main() {runApp(new MaterialApp(title: 'Container demo',home: new visitNetPage(),)