Advertisement

手把手教你用Spuernova生成flutter代码

阅读量:

width: 57,

height: 57,

decoration: BoxDecoration(

color: Color.fromARGB(255, 111, 124, 132),

boxShadow: [

BoxShadow(

color: Color.fromARGB(44, 29, 30, 32),

offset: Offset(2, 2),

blurRadius: 3,

),

],

borderRadius: BorderRadius.all(Radius.circular(8)),

),

child: Container(),

)

/// 更改后的代码

Container(

width: 57,

height: 57,

decoration: BoxDecoration(

color: Color.fromARGB(255, 111, 124, 132),

boxShadow: [

BoxShadow(

color: Color.fromARGB(44, 29, 30, 32),

offset: Offset(2, 2),

blurRadius: 3,

),

],

borderRadius: BorderRadius.all(Radius.circular(8)),

),

child: TextField(

style: TextStyle(

color: Color.fromARGB(255, 0, 0, 0),

fontWeight: FontWeight.w400,

fontSize: 12,

),

maxLines: 1,

autocorrect: false,

),

)

还是可以的,只要稍加修改就可以使用。

通过分析上面提供的代码可以看出,在组件级别下运行Spuernova生成的代码虽然无法直接使用该结果,在这种层次下确实能够节省不少计算资源和性能消耗。

我认为最理想的是建议将样式全部提取出来,并放置于values目录中。

// colors.dart

import ‘dart:ui’;

class AppColors {

static const Color primaryBackground = Color.fromARGB(255, 38, 173, 211);

static const Color secondaryBackground = Color.fromARGB(255, 36, 38, 44);

static const Color ternaryBackground = Color.fromARGB(255, 74, 78, 122);

static const Color primaryElement = Color.fromARGB(255, 38, 43, 47);

static const Color secondaryElement = Color.fromARGB(255, 243, 64, 61);

static const Color accentElement = Color.fromARGB(255, 47, 52, 57);

static const Color primaryText = Color.fromARGB(255, 93, 99, 106);

static const Color secondaryText = Color.fromARGB(255, 183, 190, 199);

static const Color accentText = Color.fromARGB(255, 137, 145, 152);

}

// gradients.dart

import ‘package:flutter/rendering.dart’;

class Gradients {

static const Gradient primaryGradient = LinearGradient(

begin: Alignment(0.5, 0),

end: Alignment(0.5, 1),

stops: [

0,

1,

],

colors: [

Color.fromARGB(255, 41, 44, 49),

Color.fromARGB(255, 49, 54, 59),

],

);

static const Gradient secondaryGradient = LinearGradient(

begin: Alignment(0.5, 0),

end: Alignment(0.5, 1),

stops: [

0,

1,

],

colors: [

Color.fromARGB(255, 51, 54, 59),

Color.fromARGB(255, 37, 40, 45),

],

);

}

在实际项目中,不仅仅一套主题是我们可能拥有的情况;将上面生成的样式适当整理或安排后,则能够形成符合项目需求的主题.

// custom_theme.dart

// 蠢蠢的写法,大佬们勿笑

import ‘package:flutter/material.dart’;

class CustomTheme {

CustomTheme({

this.lightShadowColor,

this.darkShadowColor,

this.lightShadowBlur,

this.weightShadowBlur,

this.lightShadowOffset,

this.weightShadowOffset,

});

Color lightShadowColor;

Color darkShadowColor;

double lightShadowBlur;

double weightShadowBlur;

Offset lightShadowOffset;

Offset weightShadowOffset;

factory CustomTheme.light() => CustomTheme(

);

factory CustomTheme.dark() => CustomTheme(

lightShadowColor: Color.fromARGB(255, 46, 42, 53),

darkShadowColor: Color.fromARGB(255, 85, 59, 60),

lightShadowOffset: Offset.zero,

weightShadowOffset: Offset.zero,

lightShadowBlur: 3,

weightShadowBlur: 3,

);

static ThemeData darkTheme = ThemeData(

appBarTheme: AppBarTheme(elevation: 0),

scaffoldBackgroundColor: Color(0xFF2E3439),

primarySwatch: MaterialColor(

0xFF2E3439,

{

50: Color(0xFF8293A1),

100: Color(0xFF768693),

200: Color(0xFF6D7B87),

300: Color(0xFF606D78),

400: Color(0xFF515C66),

500: Color(0xFF48535C),

600: Color(0xFF3F4850),

700: Color(0xFF384046),

800: Color(0xFF30383E),

900: Color(0xFF2E3439),

},

),

);

static ThemeData lightTheme = ThemeData(

appBarTheme: AppBarTheme(elevation: 0),

scaffoldBackgroundColor: Color(0xFF2E3439),

…,

);

static CustomTheme of(BuildContext context) {

Brightness brightness = MediaQuery.of(context).platformBrightness;

return 亮度 == Brightness.dark ? CustomTheme.dark() : CustomTheme.light();

}

static ThemeData systemTheme(BuildContext context, [Brightness brightness]) {

亮度 __brightness = brightness ?? window context?.os_brightness;

return _brightness == Brightness.dark ? darkTheme : lightTheme;

}

}

到这里我们基本就结束了,都学会了吗😺😝😄

总结

UI直接生成UI代码可行,但离完美还有很长一段路

Spuernova是目前唯一可用的工具,缺点是收费

图标字体会直接生成图片,并引入

带阴影的字体阴影想过不理想

生成的代码不能直接用在项目中,只有个别组件可以直接应用

生成的样式可利用价值比较高

学习分享,共勉

闲聊

自我介绍一下

意识到大多数初级至中级Android工程师都渴望提升自身专业技能。他们通常会选择自主学习或参加培训课程来实现这一目标。然而高昂的学费往往让人感到压力巨大。相比之下,在没有系统规划的情况下进行自我学习不仅效率低下而且耗时漫长容易被技术瓶颈限制而无法突破进展

为此特意整理了一份《2024年Android移动开发全套学习资料》,其初衷也非常单纯,就是为了能够帮助那些想自学提升却不知从何入手的朋友,并且希望为大家减轻负担。

img
img
img
img

该平台既提供了适合初学者的基础入门材料(starter resources),也为有丰富开发经验的学习者提供了专业内容和技能提升空间(进阶课程)。全面覆盖了超过95%以上Android开发知识点,并且系统性强!

因为文件较大,在此仅作为参考提供部分目录截图,并不仅包含大厂面经和学习笔记等资源,还包含源码讲义、实战项目以及讲解视频等内容,并会持续更新和完善!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

答应大伙的备战金三银四,大厂面试真题来啦!

这份资料自春招以来一直致力于收集各博客、论坛上的高质量Android开发中高级面试题,并汇集了来自各大平台的优质考题资源。
通过全网搜索筛选出最佳解决方案。
每一道题目都是来自大厂面经的经典考题,并配有最佳解答。
希望这份资源能帮助大家快速节省网上搜索资料的时间。
同时也欢迎有志之士加入交流

《960全网最全Android开发笔记》

《379页Android开发面试宝典》

包含了腾讯、百度、小米等一线互联网公司在技术面试中常被问及的各种题目类型;熟悉本文中所列举的知识点将显著提高通过前两轮技术笔试或面试的概率

您想了解如何使用它?该方法允许您通过目录导航快速定位所需知识点,并补充知识盲区。该评估值反映了求职者在面试中被提问的相关性程度,并作为重要参考依据。

《507页Android开发相关源码解析》

不论你是Java程序员还是Android开发者,在深入学习方面存在偏差时就会影响你的成长进程

最能有效提升技能的是深入研究各种开源代码库;不仅仅局限于分析研究多种不同系统的代码库;还可以涵盖众多优秀的开源项目

腾讯、字节跳动、阿里、百度等BAT大厂 2020-2021面试真题解析

资料收集过程较为繁琐。如果你觉得这篇文章对你有价值,则不妨将其分享给更多人;觉得对你有帮助的朋友也不妨帮忙点赞转发关注。文章内容也会定期更新,请持续关注我们的最新内容!绝对干货!

《互联网巨头企业的面试题解析与进阶开发技术深入探究》通过点击传送门即可访问该课程!

任何一位程序员不论开发平台如何只要不深入研究代码库仅仅依赖API文档就仅停留在表面层次难以实现全面掌握与有效应用

真正能够锻炼能力的是深入阅读源码,并非仅限于现有的各种系统源码;还包括探索各种优秀的开源项目或库。

[外链图片转存中…(img-C9kzOwf2-1713620067086)]

腾讯、字节跳动、阿里、百度等BAT大厂 2020-2021面试真题解析

[外链图片转存中…(img-JHK391rk-1713620067087)]

资料收集工作量大, 如果您觉得这篇内容对您有所帮助, 不妨不要犹豫地点赞转发关注. 文章将定期更新中. 绝对干货!!!

《互联网巨头企业的面试真题解析与深入探讨开发技术的核心知识点》点击下方传送门即可获取完整课程视频资源!**

全部评论 (0)

还没有任何评论哟~