粉丝1328获赞3628

大家好,今天分享一下那个 flatter 学习资料。呃,看这两个就够了。首先第一个的话其实就是 dart, 就像这些代码的话其实都是 dat, dat 的话直接去 bilibi, 然后搜 flat 教程, 看这个就够了。 dart, dat 语言这个讲的是很细的,这个 dat 我觉得还是有必要过一下的,如果你们觉得没必要的话,那么可以跳个 da dat 这个语言的学习啊, 因为跟那个 coderlin 有点像,语法还是跟 coldering 还是蛮像的,代表学完之后的话,直接开始弗拉特学习,这个弗拉特 直接看这本书就 ok 了,就这本书有 get up 地址,然后把这个这本书看完之后完整的看完啊,东西很多,我目前才看到了 第四张,东西还是蛮多的,讲的很细。嗯,怎么说呢,刚开始讲的东西可能你看起来会比较懵逼一些,比如这些东西 还是有些,我看着还是有些难度的,就是有点不太明白讲的什么东西,云里雾里的。嗯,但是怎么说呢?嗯,我目前还是先看, 然后就是后面如果把这本书看完之后,如果有不懂的,然后再去进一个回顾,二刷或者怎么样,这也是一个比较好的一个 学习方法,看不懂不要纠结,继续往下看。把这本书看完之后,后面还有一个 demo, 应该是把这本书看完之后就基本上就 ok 了。我觉得其他教程的话我觉得没必要看了, 因为这个教程我看讲的弗拉特的话,其实还是蛮基础的一些,深一些不如看书啊。书的话讲的还是蛮细的。这个书这个视频的话,如果你们有时间的话可以过一下,我目前还没有过完, 这个书讲的还是可以的,其实 flat 学习这两个就够了,可以了,已经能把这个学完。 那么今天就分享这个 flatter 学习的一个就是学习资料,这个 地址你们自己拷贝一下其实就 ok 了,直接搜都有的住宿合影免费看的。 嗯,今天就分享这个 flat 学习,喜欢我的可以关注一下,谢谢大家。

diy 电脑冷知识,冬天机箱摸起来感觉有电流,还伴随着电流声,一般原因是插座没有接地线,频繁蓝屏死机。可能是内存兼容性问题,或者散热器解热能力不够,建议检查散热器是否安装正常,再更换一下散热。硅脂风扇正常旋转,但显示器无显示, 可以检查一下主板的低 bug 灯,我们以 b 六五零排机炮举例,主板的低 bug 灯一般位于主板右上角,从上到下分别是 cpu 对 应红色指示灯,代表 cpu 自检不通过。排查顺序为,一、 cpu 供电线是否插好。 二、 cpu 是 否安装好针脚,在 cpu 上检查 cpu 针脚是否弯曲或断裂,缺失针脚在主板上的,检查主板针脚是否弯曲,出现针脚弯曲情况请直接送修。三、拆下主板上的纽扣,电池放电或者短接主板上的 cmos 接口,各主板接口字母不一样,注意查询。 四、主板生产日期是否在 cpu 发布日期之前,如果是,那代表主板 bug, 不是 最新,可能识别不了你的 cpu, 需要更新主板 bug。 知道主包为什么要用微星主板举例吗?如果是天气比较冷,还是微星主板卡 cpu 灯,可以先用吹风机热风吹一下主板 cpu 位置,可能就可以正常开机了。 笑自检心明不虚传。第二颗是内存条指示灯,一般把内存条拆下来擦拭一下金手指就可以解决,还是卡灯,不过就单根内存条插二槽或者四槽看看能否开机, 如果可以,那可能是内存条损坏一根或者内存插槽损坏。第三颗灯是显卡指示灯,检查显卡供电线接口是否插好,或者把显卡拆下来擦拭金手指后重新安装,注意轻断电后操作,不然就会 啊。第四颗是硬盘指示灯,如果可以开机点亮,但是卡主板 logo, 建议先重新安装系统,如果解决不了问题,那多半是硬盘坏了。如果是自己组装的电脑,硬盘内无系统,这个灯也会常亮。

get up 是干啥的?对普通人有用吗? get up 作为全球最大的程序语言聚集地,对普通人来说更像是一个巨大的资源库,有大量的学习资料,比如期末复习资料, b 站的公开课目录,免费的书籍汇总,以及丰富的软件资源,各类插件甚至是设计资源 内容,不管是对于学习还是工作都有很大的帮助。接下来就教你怎么利用。一、如何流畅的访问 githop 在进入 github 网站时,经常会出现网络错误,如果你会用魔法就可以跳过这一段了,不会的话我们可以在这里下载一个 steam, 加加,打开后选择网络加速,找到 github, 点击一键加速,此时我们就可以顺利的登录 github 了。 注册,如果你只想在上面下载资源,那可以不登录,但想要创建项目就需要登录账户了。点击注册后,首先填写一下邮箱,再设置用户名和密码,接着会有一个验证你是不是人类的环节,通过就行了。三、 get up 的简单使用如果你没有想要下载的目标项目,可以逛一逛 explore 里面的村顶,这里面是官方统计 比较热门的项目榜单,可以按时间查询。要判断一个项目的好坏,小白可以直接看斯达尔数,这个可以理解为别人对这个项目的点赞,一般斯达尔数超过一百就算是比较好的项目了。如果你已经有了想要下载的目标项目,那可以直接在这里搜索,输入这个项目的名称或者作者的名称, 在搜索结果中还可以通过编程语言进一步搜索结果。点击项目页面后,直接看右边这一栏 about 关于这个项目的简介,这里是 star 数和观看数,这里看看就行了。小白最需要认识的是 下面这个 releases 页面,这可谓伸手党的温床,白漂党的乐园。 release 就是发布的意思,开发者会把软件安装包放在这里,点击下面这个小标签进去,找到后缀为 exe 和 zip 的文件,就可以直接下载这个软件了。了解到这里,你基本上就能做一个合格的白漂党了,其他的一些功能就不过多介绍了。这里是小白不小白,我们下期再见。

flatter, 一个构建苹果安卓网站的界面框架。 flatter 是高性能 c 加加和 doctor 语言的结合,使用 doctor 语言进行开发。 dart 提供类型安全检查和有状态热加载,可以帮助你构建可靠的应用。在生产环境中, dart 会编译成本地机器码,意味着界面可以在任何平台上漂亮的显示,然后运行 flutter creat 的创建应用。现在打开 main dart 等键,你就在这里编写代码。布局就像一棵树, 框架提供百余种内件组建,向动画滚动布局等。你可以通过继承无状态的组建构建自己的组建,然后重写 biu 函数。 有个重点是在发扯中任何东西都是 vj, 这个函数返回 vj, 他的子 vjj 返回 vj。 这 这样我们就得到一个声明式的组建结构,这样你可以使用 flatter 的工具查看组建。当组建输入数据改变时,会自动调用 built 函数重建界面。不状态组建是不可变的,并且没有内部状态。当你需要根据用户输入改变内部状态的组建时,你可以继承 safe v j 定义。在这个类中的属性是响应式的,比如这里的 count 属性。然后在 beer 的函数中有个巴特组建,当巴特被按压后,会调用 state 的更新 count 属性进行递增, state 告诉框架状态有更新,需要重新绘制界面。 现在你可以在甄姬中运行福阿特应用。现在我们对此组建做下改动。对这个按钮加一个居中并修改颜色。无需编写代码,仅需点击巴特的同时按住 control shift r 后选择 三特,然后改变巴特的颜色,并且左边会显示当前的颜色,然后在命令行输入二将会存在应用,仅需几百毫秒的时间就可重新构建新版应用,并且注意 ctrl 状态并没有被更新,这就是 fat 带给我们舒适的开发体验。 如果大家喜欢请点赞、关注、评论,这将极大的帮助我输出更多的视频,谢谢大家,我们下个视频见。

记住这个开源的远程控制工具,并且还是不限流的,目前已经斩获了五点五 k 星标。它是一款跨平台远程控制桌面神器,不仅功能强大,还支持 windows、 mac os、 linux、 android 以及 ios 等多个平台,甚至还能通过网页进行远程控制。并且基于 vivo 三 web rtc notice electron 开发, 直接让你二次开发无压力,没有任何连接次数和画质限制,基本用得上的基础功能都给你开发完成了,开箱即用,更强大,更自由,重点完全免费!

今天讲一下技术方面的啊,原生和 flutter 融合开发,在安卓工程啊 ios 工程里边,如何去解决 flutter sdk 版本不一致的问题 啊? flutter 开发有两个问题,第一个呢,是每个开发本地的啊 flutter sdk 版本不一致。第二个呢,就是每个项目的 flutter sdk 版本不一致 啊啊,我的方案呢,就是比如说是在安卓工程里边哈,在执行 guido 命令之前呢,执行一个需要脚本 啊,把福拉特的 sdk 啊下载到一个项目的工作空间里边去,然后呢,在这个脚本里面执行 prekit 啊和 publickit 缓存和依赖来下载。 ios 工程里边呢,就是直接在 post 里边啊, postfire 的 顶部执行一个 u b 脚本 啊,在 ruby 脚本里边去下载一个内网的一个 filet sdk, 并且指定 filet 的 环境变量,然后执行 filet public git 和 filet prekey。 最终呢啊,再嵌入啊 filet 的 相关的一些脚本 啊,嵌入到 pos 的 流程里边去啊。所以我们工程开发的时候啊,安卓工程呢,先执行需要脚本,再执行 grado 这个命令去继承依赖 啊, ios 里边呢,就直接执行 porting store 啊,所有的环境都不是好了。这样呢,就保证了每个人本地的 flat 的 sdk 版本的一致和每个项目的啊 flat 的 啊, sdk 的 版本一致,要保证的就是 c s c d 机器上啊,每个项目的 flat 的 sdk 的 环境一定是一致的。

大家好,这里是小白战绩,本次为大家分享操作指引功能,可能很多人并不知道这个功能叫什么,或者要怎么去搜, 你可以直接搜功能引导或者操作指引,甚至新手引导都可以。这个功能通常出现在用户首次使用你的应用时,为用户简单介绍你应用中的一些功能点,以便让用户可以快速的了解你的某些操作。左侧我写了一个简单的演示页面,由于这和内容的关联性并不大,所以我就用一些颜色来代替了。 一般来说这个功能在启动应用时就应该自动触发显示的,但是这里为了演示,我改成了点击手动出发。大概就是这样的一个气泡引导效果,你可以在里面填写相关的引导信息,然后点击下一步会跳转到下一个功能引导,点击上一步可以回退到上一个引导,当然直接点击背景也可以跳转下一个操作引导, 点击跳过可以直接关闭引导功能,它可以附着在你的任何组建之上。上面的气泡框你可以通过配置适当的进行微调, 这上面是图标的引导效果,这个是文本的引导效果,通过文字描述可以让别人知道你的隐藏功能。右上角是一个比较常见的功能区域,对于内容区的引导,如果内容没有在视口区的话,组建会自动触发目标元素滚动到视口区,现在还是默认可见的区域,下一步就会自动滚动到最后一个元素, 并且气泡会自动检测可用空间,然后智能的显示在元素的上方,当目标元素的下方空间足够时,就会优先在底部显示, 最后是内部的轮次引导。另外引导区域还支持完全的自定义显示,你可以按照自己的需求去定义要显示的内容。 当你点击完成引导后,整个新手引导功能就结束了,程序后续启动也不会再展示这个功能,除非应用被卸载了重新安装。这就是这个功能的效果演示了。接下来给大家介绍几种常用的组建库,这几种是我搜罗出来的,仅供参考,并不代表只有这些哈。 首先是第一款 tatao touchmark, 下面是它的一些核心亮点,支持多个目标一次高亮,支持气泡自定义的配置,也支持跳过和回调监听等,可以自定义遮罩的形状,也支持点击目标执行操作。下面是它的项目截图,拥有一百多 k 在 下的量,表现还是相当可以的。 下面是它的运行效果预览,你们可以大致的看一下,感觉和蒙特有的设计风格很相似,如果你觉得还不错的话,可以尝试着去用一下它,也没有什么坑,用起来很简单的。 第二个是 feature discovery, 它是 google 官方出品的一个组建,在设计上会更规范一些,它可以自动记录是否显示过,不会重复显示,比较适合功能发现类的场景。可能是由于 google 出品的大多都是 matthew 第三类型的风格吧,这就导致了在国内喜欢这种效果的不是很多,或者也有可能用的是其他库的组建, 反正这款的话下载量比较低。下面是它的运行效果预览,大家可以简单地欣赏一下,如果你觉得和你的运用很贴合的话,可以去试一试。 最后就是 showcase 六速教,它也是本期我要着重分享的组建它的 a p i 很 简洁,上手快,支持动态添加之眼,包括包体积小等特点,并且它的下载量也相当可观,这就是它的运行效果,我个人感觉它比较适用于一些常规的应用,所以这里我主要是给大家分享它的用法。 现在回到我们的编辑器中来,打开我们的项目工程,这个文件是我应用的首页,就是构成左侧你看到的整个 ui 界面的文件。接着在配置键夹下的烘配式就是首页的布局文件,也就是左侧不包含底部菜单栏的区域。我在导航栏的左右两侧各放置了一个图标,待会我会在这里给他们加上操作引导信息。 内容区是一个可滚动的单式图列表,里面放置了几个高度不一的纯色容器,这主要是为了营造出内容参差不齐的效果。现在我们来看要用到的组建,你需要在仓库中去搜索这个组建,我视频录制的时候发布的最新版本是五点零点二, 接着我们来安装使用,把它提供的这个依赖复制下来,然后回到我们项目的依赖文件中,找到里面 dependencies 这个节点,然后在后面加上复制过来的依赖,不过这个我之前已经加过了,最后别忘了去下载依赖哈。 接着我们来看要如何去使用它,在它 random 的 标签下并没有放置任何的使用案例,这里只有一个安装依赖的伪代码,这时候我们就需要把目光聚焦到 excel 这个标签,这里面有它准备的基础案例代码。 由于它并没有那些步骤性的使用说明,所以我们得通过这些视力代码学着去看要如何使用它。有一个比较重要的点,你得知道这种类型功能的核心原理是通过 global key 去定位元素的, 所以他需要我们去定义这样几个 key。 由于这个组建可以提前做一些通用化的配置,可以针对第一步和最后一步做一些特殊的展示处理, 所以他在这里单独定义了一个首部的 key 以及最后一部的 key, 他 俩你可以稍微留意一下。然后他在下面还单独定义了几个中间状态的 p。 使用前需要在 linux state 中去完成组建的注册,这一步是必要的,否则组建是无法正常工作的。这里面是一些基础的配置项,现在这个就先不多说了。然后通过他提供的单立模式去调用三十个 case 函数。启动引导功能。这里面要传入 你需要触发引导组建的所有 key, 但因为在运行的时候,组建需要动态地去获取组建在屏幕上的真实位置,所以无法在 linux state 中直接运行。 想要立即运行的话,需要在页面渲染完成后再去执行它。这可以借用到这个勾子函数,它的作用就是在 ui 完成手阵渲染时调用你传入的回调函数,如果你需要自运行的话,就可以加上它。 接着需要在 display 函数中去取消注册,完成它的最后一步收尾工作。以上就是需要提前做的准备工作了, 使用的话就用 showcase 组建,它需要用这个组建把我们的目标元素给包裹起来,然后给它指定一个全取为一的 t, 这样组建就可以定位到它了。最后把我们的真实组建放在它的 channel 里面, 这两个是比较重要的。设置属性,然后用 dispatcher 去设置要显示的引导信息,当然也可以对引导气泡框进行一些独立的配置,其他的就是更换不同的 t 以及设置对应的标题和描述信息,这些可以根据具体的情况去配置, 其他就没什么了,使用起来还是很简单的哈,现在我们就来把它给应用到我们的项目中去。首先肯定是可以直接写在某一个单页面中的,但是如果你想要全局性的引导,最好是把注册操作放在首页去完成。这里面是我以前分享过的首页的代码,我们可以在这里面去添加一个用于注册的函数, 然后在 linux 中去调用它。接着还需要重写一下 display 函数,然后用组建提供的 showcase view 去注册。 由于这里面拥有大量的默认设置,所以即便我们不做任何参数配置也是可以运行的。取消注册的话需要通过 get 函数去更改一下。这个操作我觉得非常的不人性化,他应该把它和 register 设计成样,像这样独立一个函数出来。 ok, 这样就完成了前期的准备工作。 现在我们可以在页面中去添加一个引导了,我先在标题文字这里加哈,先把原来的组建抠出来,接着用库中提供的 showcase 组建,这里的 key 我 们晚点来写,把之前的组建放在这里,然后我们需要去创建一个全局的 key, 这个 key 我 们可以放在首页去创建,命名的话随意就好, 这样我们就可以使用它了,需要导入一下首页文件的依赖,可以看到这里面也提供了很多的配置项,我们先来配置它的引导描述内容,这个就随便填了哈, 这样就完成了一个最简单的引导应用。但是还没完,这里的这个 key 我 们还没告诉引导组建呢,只需要在启动的时候把它传进去就行。这个是底部菜单,在切换时会调用的函数负一表示,中间的这个加号按钮下标,这样可以在点击的时候去触发显示, 然后把刚才创建的 key 放到这个列表中去,这样就完成了组建的调用了。前面有讲到,如果你想自动触发显示的话,可以通过这个勾子函数去执行, 就像这样传入一个匿名的回调函数,这样就可以在出式化之后自动运行了,这个需要我们重新运行一下哈。 ok, 我 们来试一下,可以看到这样就在标题上出现了一个引导气泡,点击背景会自动消失,现在我们来看一下自动运行的效果,可以看到不用点击就可以显示出来,手动点击也能触发显示。 现在我们来看这里面的配置,像它有很多,可以去配置 blur value, 可以 设置背景的模糊程度,现在的背景还是很清晰的,对吧?由于这部分是在 excel 中改动不会生效,所以这里的每次改动都需要重新运行,可以看到现在的背景就模糊一些了,对吧?你可以根据实际的情况去设置它的值, 值越大背景就越模糊。 auto pad 也可以启动自动播放,感觉应该很少会用到呢。它默认是未开启的,想要的话可以设置它,这个是自动播放的间隔。 这个 mac os pro 一定要设置一下,它表示当内容处于非试口区时,引导到目标组建时,是否自动滚动到试口区,建议启动这个设置项,然后对于传入了但是有没有绑定的目标就直接跳过。接着我们来配置下面的操作按钮,就是这里的下一步和上一步的操作按钮。 这个可以通过 global totypatience 配置,它是一个数组,可以配置多个,需要通过它提供的对象去装配。这里的 type 是 一个操作美举值, 它里面支持上一步,下一步以及跳过等操作类型。这里我们先来配置下一步 textstyle 可以 设置按钮的字体样式,先设置一个字体颜色吧。默认情况下,按钮文字显示的是 type 中配置的英文标签,但是我们可以通过 name 去更改显示的文字。先来看一下效果, 这样就多了一个下一步的操作按钮了,它内部自动绑定了下一步跳转的逻辑。这里面有一个用隐藏按钮的配置属性,它是一个数值列表,可以指定当目标中这个 key 的 引导显示时,不显示这个按钮,这样就会隐藏配置的这个操作按钮了,但是其他的引导提示依然会展示哈。 接着我们复制一下这个配置按钮, 然后把下面的这个改成,完成引导的操作按钮,其他的先不用改, 这个我们后面一点再来调整。对于按钮的布局位置也可以进行设置,它里面有一个 toityping config 的 配置属性。 alignment 表示按钮在布局内的对齐方式,一般的做法是可以把它们放置在布局的左右两头。 pose 是 用于设置按钮的布局位置,我们先随便选一个指向了它里面支持好几种方位的配置。 os 表示按钮会放在气泡的外面, inside 是 放在气泡的内部,同时也是默认的直 inside。 life 会放在气泡内部的左侧,而 inside 则是放在气泡内部的右侧。我们先把隐藏的配置给注视了,来看一下效果, 这就是默认的布局效果。另外文字的内容是支持大小字适应的,不需要去关心它的尺寸问题。现在我们来看一 side left 的 渲染效果, 这就是放在内部左侧的效果,那右侧的话就是放在这右边了,效果都差不多就不看了。我们最后来看一下放在外部的效果, 这就是放置在外部的效果,它的演示效果中就是用的这种布局,不过我觉得还是放在内部会好看一些。 action guide 可以 设置操作按钮之间的间隔,项链这个属性可以设置内容和操作按钮之间的间隔,就是这中间的这个距离, 不过这种布局的话,这里的距离就太大了,可以适当的把它调小一些。其他的这几个可以是情况去设置,我这里就不设置了。关于气泡更详细的配置,需要去到每个地方单独配置。通过 titer 可以 给气泡设置一个引导标题, 但是默认的标题有点丑,字体太大,并且和下方挨得太近,通过 title limit 可以 设置标题的对齐方式。 pytower 可以 更改它的字体样式,可以设置一下字体大小和文字颜色,为了能突出一些,可以设置一个明显的颜色。 现在我们来调整气泡的整体内间距,这个是通过 twitty padding 去设置的, 然后通过 description 拍顶去调整内容的间距,它主要是改一下顶部的距离就可以了。 ok, 感觉这样就差不多了,那我们把左侧的图标也加上引导 下面这部分配置直接复制上来。这里的 key 我 们需要再去创建一个,这次就直接创建三个放在这里了, 这里就还是第一个,然后把后面这个图标也配置上, 把这个换成刚才的 let's key, 中间这个换成门 key, 然后把这三个 key 配置一下, 只需要在启动的时候把它们加进去就可以了, 这样就可以正常显示三个引导了。 仔细看你会发现这里的三角箭头溢出来了,这个我们可以去调整气泡的外间距。 to tip magician 就是 用来调整它外部间距的,为零的话两侧就没有间隙了,调整到三角箭头不会溢出去就可以了。 接着我们来看按钮的自动隐藏,一般下一步在最后的时候就不用再展示了,所以需要把这里配置成 swiftkey, 完成引导的话就暂时先配置一个 swiftkey, 这样第一个出来的时候就不会显示完成引导了,最后一步也只会显示完成引导这一个。接着我们来构建演示效果中的跳过和上一步操作,但由于每一个 button 都会遵循上面有 lemon 的 对齐方式,所以需要使用自定义按钮的方式去放置。 这里面有一个 custom 的 构造函数,它可以作为一个整体进行布局对齐,这是一个 vg 类型的参数,所以这里我们可以用 root 键将多个组合在一起,尺寸的话需要设置为最小哈。 由于跳过和上一步不需要特别的明显,所以我们可以用普通文本去显示,但是点击操作还得需要绑定一个事件组建,我这里用之前分享过的点击组建来构建,你们也可以用 just detector 去代替,然后通过拍定设置一下自己的那间谍大小的话合适就可以了。 拆到这里就可以用 text 去设置要显示的文本了。这个先放跳过的操作文字,因为这个不需要很明显,所以可以把它的颜色设置为灰色, 接着再给它绑定点击事件,只需要调用组建的 disme 函数即可,这样就完成跳过的自定义绑定操作了。然后我们在后面来添加一个斜杠进行分割, 接着我们把跳过复制下来,把这里改为上一步。不好意思,请忽略我,这里的文字打错了颜色的话可以改得明亮一点。接着把这里的函数改为 previous, 这样就可以了。这里面还有很多的函数可以调用, 这个是启动引导的函数,接着我们把它的自动隐藏属性也配置一下, 他的话首个和最后一个是不需要显示出来的,只需要在中间的操作步骤显示出来就可以。我们运行来看一下效果, 第一个只显示了下一步,并且点击跳过可以直接关闭整个引导点,它可以返回上一步。哎,不对,刚才的文字好像有问题,这里应该是上一步才对。 对了,这里的间距可以再微调一下,它的水平方向可以撑开一些,垂直方向就不要了,我们再来看。 ok, 这样就可以了。但是右边这里还显示了两个,这个需要调整一下完成引导的隐藏设置。这里是除了最后一步,其他都要隐藏,先写死线面两个的 key 吧, 这样中间步骤就不会展示完成引导了,只会在最后一步展示这个操作按钮。对了,刚才我注意到在下一步的右侧多了一个空白区,就是这后面,这应该是之前设置的 action gap 造成的,把它去掉应该就可以了。 ok, 这样就没有了,那这个就不要了。另外这个完成引导按钮,突然一下跑在左侧去,感觉会有点别扭,按理来说还应该和下一步一样保持在右侧才对。这个需要在具体的引导中去更改按钮的对齐配置,这样就只会对这一个生效。 手动指定这里的 element 对 齐方式,把它放到右边去,这里面来的就是靠右侧的一起哈。对了,这个放错位置了,应该要设置到下面去。接着第一个也需要设置一下,这样重要的操作就统一地放到右侧去了,中间步骤依然是正常左右显示的。 ok, 这样就可以了。 接下来我们给下面的内容区也加一个引导,看一下,这个咱们先复制一下, 然后把这个 container 放进来,这里的按钮配置就不要了。接着我们需要再创建一个 globalkey, 这个就顺着叫 tokey 吧,然后再启动的时候把它加进去, 最后把它给运用过了, ok, 这样就搞定了。我们来看一下效果,前面的就直接跳过了,没问题,引导就显示出来了。但是这里的完成引导又出来了,需要把新加的 key 配置到完成引导按钮的隐藏列表中, 这样就可以了。 现在这一步就不会显示完成引导了,确保只有最后才会显示它。 至于后面的我们就先不加了。不知道你们有没有发现,这样的使用方式会出现大量重复的代码,这一堆堆的有点太过于重复了,而且配置太分散了,也不好管理,这样显然是行不通的。这种功能一般只会在应用首次运行时才执行一次,以后就不会再执行了, 但这些大量的代码是依然存在的,而且就算功能不触发的话也会执行,这里面的代码逻辑会多加这一层无用的逻辑。在我们的应用中,对于这种只会出现一次的功能,我们应该尽量的避免直接去使用它们,所以我们可以把它给提出去。 在我们的 command 文件夹中去创建一个名为 excel 的 工具类,我们可以在这里面统一地去管理它,它作为一个工具类,就没必要对外提供构造函数了,所以构造可以直接定义成私有的, 这里面提供几个静态函数就可以了。首先是用于显示的受函数,这里面就不用穿一堆的 key 参数了,然后是用于销毁的函数,接着是创建引导组建的函数,最后是注册组建的函数, 咱们直接把之前这边的注册代码给复制过来,然后把缺失的依赖导入一下, 这些报错的 key 可以 先不用管它,然后把取消注册的函数代码也复制过了, 接着把 show 函数给实现一下,这里改成 startshowcase, 那 个函数里面的 key 列表先不填,这样我们就可以把之前的调用方式换成这个工具类了。这里调用 introduce 中的 dispose 函数, 这个注册函数就不要了,这里去调用 introduce 中的注册,然后下面触发就调用 introduce 中的收函数, 这样就可以了。之前上面定义的这几个 global key 就 不要了。由于把这部分 key 给删掉了,所以这边使用我这些 key 的 地方肯定都会报错,现在我们把它给挪到 create 函数中去,这里的返回要改成未知,然后再下面去返回刚才复制的内容,接着把引用的 key 通过参数的方式传进来, 下面就可以使用这个 key 了。再有就是引导描述的文本内容, 这里的引导标题可以固定,斜四就不用把它也抽出来了。下面的气泡外间距也可以提出去,由调用的地方去调整, 它的默认值是十四哈,我们可以保持不变。接着我们把目标高量元素的内间距设置也放出来,它可以更改高量目标元素的框架大小, 它的默认值可以设置为零。 这里关于操作按钮的配置,我们先就这样,等一会我们再来调整它。这里的子组建内容,我们也需要把它通过参数传进来,然后把下面的组建内容给换成 chair。 接着我们来构造对于 global key 的 管理,这里我们就不采用之前手动创建的方式了,我们通过集合的方式去统一管理。 在类似中,有一个 generate 函数,可以快速地生成一个指定数量的集合,比如这里填数字三,就表示会生成三个元素,后面是用于生成元素数据的回调函数。 index 是 元素的下标,我们直接在后面去实立化一个 global key 就 可以了,这样会比手动创建好管理一些。 对于首尾的 key, 我 们还是需要把它俩给单独拎出来。下面这个是 let's key, 值,就从这个列表中去取,这里取第一个元素,下面的取最后一个元素。这里的下标需要做一点处理哈。 当然这里默认的是所有的步骤大于等于二的场景卡,如果只有一个引导的话,就没必要这样做了。接着我们继续添加一个用于获取每个步骤 key 的 函数, 这里接收一个步骤序号,注意这里并不是表示下标哈,然后从列表中去取值。由于不是下标,所以这里需要对数字做一个兼容处理。如果这个序号减一小于等于零的话,就直接返回第一个元素,否则就正常返回里面对应的 p。 这个参数需要特别注意一下哈。 现在启动引导函数的参数就可以传这个列表了,这样就不用每次都手动去加了,而且之前固定写死的 key 也可以运用起来了。这里依旧是首尾的 key, 这里的下一步是最后一个 key 完成引导的,要稍微特殊一点,它需要填入除了最后一个元素之外的所有 key。 因为是集合, 所以可以很容易地就办到这一点,直接用内置的 getren 函数就行,它可以返回指定范围内的所有元素。另外也可以用 space 函数来做,它们的效果是一样的。这里的 start 从零开始,结束下标的最后一个元素,注意这里是不包含结束下标的,所以并不用减个二。 然后将结果重新转成一个 list, 这样就可以做到一个动态适配的效果,也不用每次都来这里手动加了。现在我们就可以把之前的代码给换成这种最新的方式了。 这里我们去调用 create 函数, p 的 话就用之前的 type 函数取过去,值的话是第几步就填几拆了。直接把下面的内容复制过来就可以了,描述信息也复制过来, 之前的这个我们就不要了,这样就简洁多了,对吧?后面我们可以像这样复制一下,然后直接把这一部分给替换了。下面也是同样的操作, 这个配置就不要了,这是第一个,这是第二个,这个是第三个。接着我们把下面的也改了,这是第四个,这样的话这里就出现了四个功能引导,那我们这边这里就得生成四个哈,其他就没什么要改的了。 ok, 我 们来看一下现在的效果,能看到效果是一样的,但是这里操作按钮的对齐方式不太对, 注册这里没什么问题,我们只需要针对 create 去调整每个引导的对齐方式即可,可以根据类型的不同动态的去决定要对齐的方式。当这里的 key 表示第一个时,让它保持在末尾显示,其他的还是保持在两端去显示, 但是最后的完成引导比较特殊,因为后面我还要介绍自定义气泡布局的用法,所以把它放在中间会好看一些。那我们这里就还得再加一层判断, 这里就得用 s k 来判断,然后把它改成居中对齐,最后才是两端对齐, ok, 这就是最终的形态了,这样中间步骤就是两端对齐的效果了。最后一个则是居中显示的,这种配置方式仅供参考哈。 接着我们把剩下的几个组建也给加上引导信息,把之前的这个给复制一下,然后把这个 container 复制上来,后面的都按照这种方式去修改一下, 中间的这两个文本也需要给它加上。 然后我们来调整一下每个引导的显示顺序,把最后的这个给改成五,这个改成六,这个改成七,然后是中间的八和九, 最后把这边集合的数量改成九个。接着我们来运行看一下,第一个、第二个、第三个、第四个,这是第五个,这是第六个了,第七个、 第八个。这里的高亮区域有点太紧凑了,这个我们可以通过之前预留的,它可以拍顶去调整,稍微给它设置一点内部间距就可以了,这样就可以调整这个高亮的大小,顺便给下面也设置一个吧。 ok, 这样就好一些了。刚才我注意到有时候可能步骤多了,会不知道当前的引导进度,所以我们可以在标题这里把引导进度给显示出来,我们来小改一下这里, 这就是使用类似来维护的一个好处,做这个功能可以说是非常的简单,对于当前进度的话,我们用列表去检测一下这个 key 就 能得到,但是它返回的是对应元素所在的下标号,所以还需要再加个 e, 这才是我们熟知的自然序号总数量,直接用列表的长度即可。 可以看到现在就展示引导的进度提示啊, 最后点击完成引导这个功能的使命就算结束了。现在来讲一下我们为什么要使用这种方式来处理吧。之前那种方式可以正常使用,现在多加一个函数也还是这样用。可能你会觉得有点多此一举, 那是因为这个引导它只会出现一次,所以这里我们需要加入一个阶段处理。如果之前已经显示过了,那这里就可以直接返回原始的 chat 了,这样就可以避免像之前一样创建大量引导相关的组建,在使用的地方也可以保持尽可能的简洁性。 对了,说到屏蔽功能的话,这个引导组建自带有一个起用或者停用开关的,它有一个 n a 薄的开关,这样是起用状态,把它改为 force 可以 禁用了,但是这种方式只是不会触发执行,它依旧会创建大量与引导相关的组建,所以我个人不是很推荐这种做法, 我们还是回到之前的这里来,但是在此之前,我们需要先添加一个辅助函数,用于判断当前是否可以执行引导功能 n 一 步,表示是否起用此功能。这里涉及到数据的存储问题,实现方式有很多种,这里我用 share preferences 的 方式给大家演示一下。这个是我很久之前写了一个工具类里面的 s a c 步用于判断存储的值是否是 false, 这里要指定一个用于存储数据的键,你随便起一个就行。如果是首次使用的话,可以给它设置一个默认值, a c cbo 表示是否禁用,所以这里可以设置为 false。 对 了,这里还是用 disable 来表示吧,可以大概看一下里面是什么样的。我用的是 share preferences 来做的本地数据存储,当然这里你也可以用其他的存储方案去替换啊。那现在我们就可以用它去做下面的条件判断。首先是受函数, 像这样把下面的代码包起来就可以了。接着是 dispatch 函数,至于 create 函数,这里会有一点区别哈,我们需要再被禁用的时候直接去返回 char, 所以 在前面的条件这里需要去执行一个取反的操作,然后直接返回 char。 再有就是下面的注册函数中也需要这样子去处理一下,这样在后续运行的时候就不会再去创建任何和引导相关的组架了。 最后就是需要再合适的时机去禁用它,我们需要用它把后面这个 key 的 值存起来。这就需要用到组建提供的监听回调函数了,它里面提供了好几种可以监听的动作函数,我们可以都来看一下。 on start 函数会在每一个引导显示时被触发,为了方便观测,我们可以在这里面去加一个打印信息。 on dispatch 函数则会在点击跳过时被触发, 而 enfinie 函数只有在最后一步跑完时才会被触发。 enfinie 的 这个函数则在每一个引导结束时都会被触发,我们来重新运行,看一下具体的日制打印情况。 现在触发的是 est 函数,点击下一步的时候这两个都会被触发,点击跳过则是 enfinie 会触发。现在我们把引导给走完,看一下, 可以看到此时 i'm finish 被顺利触发,所以我们只需要在 i'm finish 和 and desmise 函数中去处理一下就可以了,用它里面的 set 函数去保存配置信息,直就直接填入,然后在 desmise 中也是这样操作,最后它们读写的 key 一定要保持一致哈, 算了,还是把它给单独独立成一个函数出来吧。 然后就是去调用这个函数, 把上面这里也换成它。 ok, 那 我们来测试一下它的运行效果, 现在是正常显示的效果,这里就直接跳过了,然后再来运行,可以看到现在不管怎么点都不会再弹出来了。我们可以来打个断点看一下, 断点是正常进来了的,但是不会执行里面的逻辑代码。然后我们来重新运行一下,看一下到底会不会注册这个引导组件。 ok, 这个断点是进来了的,但是并没有执行后面的注册代码,逻辑点击自然也是无法触发引导功能的,这就达到了一次性功能的效果了。另外气泡的形状也是可以调整的,我们需要把这里的返回改成固定值去测试,不然就永远都无法触发显示了。 现在让我们重新来展示它,就比如这里用户图标的高亮,你完全可以把它给设置成圆形的,你可以通过这里面的 target border radio 属性去调整它的圆角,只要你把它的圆角设置得足够大,它就会变成一个圆。如果你有这种圆形高亮气泡的需求,可以把它也作为参数传进来, 这样就可以在需要的地方去设置圆角了。 最后我们来看一下这个自定义布局的实现,这个需要再复制一个函数出来,然后把它改成 custom, 这个描述就不要了。这里面其实还有一个名为 vc 的 构造函数,它的话这些设置项就都没用了, 这些通用的配置项可以继续使用。它里面有一个 container 的 参数类型是 widget, 用于接收你的自定义组建。这里为了避免直接创建过多的对象,我们可以用回调的形式去创建。 widget 是 系统 sdk 中自带的一个函数类型, 但是这里无法直接把它设置给 container, 所以 我们需要用 builder 组建去中本一下,它接收的就恰好是一个未知 builder 的 回调参数,所以直接像这样就可以了。那我们就来应用试一下,把这里给改成 custom, 然后用 builder 去创建要显示的内容,里面的内容我就直接用之前写好的了哈,简单显示了一段文本,然后额外加了一个背景图,这样就是自定义布局的大致效果了, 这里可以保持固定不变。最后我们来看一下自动播放的效果,这样就开启了引导的自动播放, 这时候它就会按照设定好的时间间隔自动切换这个效果,可以根据情况去选择是否要起用,其他就没啥了。最后如果有对这个引导功能的原理感兴趣的,可以去我的公众号上查看相关的原理解析。 相信你也发现了这里的 global key 是 个很重要的东西,它可以通过里面的 current context 对 象去找到内部的渲染对象,最后转换成一个 renderbox 对 象。 这里面有一个 local to global 的 功能函数,它可以获取目标组建的真实坐标,也可以返回目标组建的宽高尺寸,最后得到目标元素的坐标以及尺寸等信息。那本期视频就到此结束了,感谢您的观看,咱们下期见。

大家好,我是建国,今天给大家带来的是拉特环境的安装, 在前面几期我当中呢给大家介绍了弗拉特的一些优势呀,以及如何为什么要用弗拉特来 开发。那么今天呢给大家带来的是弗拉特的安装教程, 因为在有的时候,虽然你在文章中写的够详细了,但是好多同学可能还是有点含糊,那么今天呢,希望就是通过这个 教程视频教程呢,大家能够更加快速的安装 flat, 然后进行后买的一系列的开发。现在登录这个网站,为什么推荐这个网站呢?因为好多同学可能没有 梯子,所以房屋外网会比较慢,所以可以利用国内的镜像,然后点击开始使用。 然后我今天呢主要给大家介绍的是豌豆系统的想如何安装拉小环境,那么点击豌豆子,然后选择 法拉特 sdk, 因为目前的话是二点五点三的版本,当然你如果想安装其他版本的话呢,点击这 的 sdt 版本列表,然后我们选择学习的话呢,一般会选择在 稳定分支上进行选择,可以看到就是版本 以及他的更新时间都是比较频繁的,然后呢二点五点三,距今也已经一个月左右了,所以说还是比较稳定的。然后呢在普拉特方面呢,取一点二零是一个 重大的百万升级,然后就是一点二二, 然后二点零二点五,那么今天我们就用最新的二点五点三来进行一个安装, 然后点击安装,然后选择下载,下载路径可以随意切换, 比如说我安装到 f 盘,下载到 f 盘这 开始下载,然后等几分钟就会下载完成,等下载完成之后给大家再教如何配置环境变量。配置环境变量呢,其实也是一个非常简单的过程, 让他先下载,然后我做一些前期的准备,就是先打开电脑,点 及鼠标右键,选择属性高级系统,设置环境变量,然后找到 pass, 再 pass 掉, 稍等一会等。哎下载 y 教大家如何配置, 大家也可以下载的时候呢,推荐使用 idm 这个工具,下载速度还可以, 因为他是多现成下来,所以也想到,然后可以看到已经下载完成。下载完成呢,我们就要把它解压,然后解压到就解压到 目前的,这个我就想下面 可以看到解压之前是八百多,这样也不大,还可以, 那么大概稍等两分钟, 就是在解压的过程之中呢,尽量将其解压到没有还原权限的地方,因为你解压到 要把里面前线的地方,可能会带来前线相对应的一些问题, 然后现在解压完成,点击他的路径,选择闭目录,将其路径复制,然后 因为我现在之前已经配置了,所以我要找到之前的,然后改为现在的闭目录。 看到我之前一直晕倒, 我刚才看到我的是不是有大的环境变量,那我可以把大的环境变量删了去,因为现在已经在需要。 为什么这么说呢?因为现在的 plusstk 已经内置了,然后选择确定,然后现在我们可以检查一下是否安装成功,然后用 plus 来进行检查 发出都可能啊,可以完整的列出你的一些详细的一些啊信息,比如说 你现在是否有调试设备以及会下载一些相应的依赖?因为我刚切换闭目录,所以他下载是需要一段时间的,但是也挺快,可以看到二点五点三已经完成, 然后二点五点三可以看到已经支持啊,我的版本安卓版本有点旧了,我需要完了升级这个密室,然后第二个连续设备有两个,为什么是两个呢?可以看到第一个就是 第二个呢,就是在安卓上开发,然后呢现在的白粉呢是二点五点三,至于其他的这些错呢,就是 大家不用关注,然后后面呢这些错呢,都不影响昨天发,嗯,因为我今天是在我家里的电脑,所以说, 嗯和公司的电脑里的截图是不一样的,大家可以按照我的文章里的那个安装步骤进行一个安装,因为我家里的电脑环境比较多,所以可能会报这些错,但是不影响后续的使用。 好了,今天的安装的这个教程呢,就给大家介绍到这, 嗯,现在也算是安装完成了。嗯,那么我们今天就到这,我是建国,我的公众号呢是建国建国前端,然后如果大家 觉得喜欢的话呢,可以去关注我的公众号,在后面呢会给大家带来一些关键点的一些视频教程, 也会在我的公众号上进行一个同步的更新。那么如果大家喜欢今天的这个视频呢,大家可以点赞留言支持加转发,谢谢。

一个九十九兆参数级别的 tts 项目,居然把网页、电子书和树莓派都串起来了。它叫 supertonax, 三重点不是单点音色,而是模型够小,速度够快,还能直接在端侧跑。先别听我空讲,下面直接看官方树莓派演示,感受一下它是不是只停在论文里。 we introduce supertonic blazingly fast on device tts model that even runs on raspberry pi。 树莓派能跑只是第一层,真正有意思的是,它把 tts 变成了设备自己的能力。 接下来这个电子书演示更像真实产品,飞行模式下,它还是能把内容读出来。 the curious case of benjamin button by f scott fitzgerald。 到这里你会发现它解决的不是好不好玩,而是离线、隐私、低延迟这些真实问题。 平台覆盖也很夸张, python, node 浏览器、 java, c 卡加 go, swift, ios, rust, flutter 都有实力。语言上,它支持三十一种,包括日语、韩语、英语、法语、德语这些。但要注意,中文不在列表里。 我会单独提日语是因为之前我很推 sherpa unix, 但它的端侧 tts 一 直缺日语。 supertonic 刚好补上。最后再看一个最直观的网页场景, chrome 扩展,把网页内容直接读出来。 years ago no one really did anything ever chonggu bachichip sanion chonggu bachichip sanion chonggu bachichip sanion chonggu bachich sanion is to dench do si guido annum 除了跑得动,它还展示了金额、电话单位这些真实文本的读法。这块其实很考验 tts, 所以 我的判断是它适合英文、日语、多语言、离线朗读、浏览器插件和移动端中文用户先等等, 一个好项目不需要完美才值得看。 supertonic 三最打动我的是它真的把 t t s 往设备里推了一步。