新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小菜需要处理标题栏弹出对话框 PopupMenu 样式, Flutter 当然提供了一些处理方式,类似 PopupMenuEntry 等,小菜仅就最基础的使用方式进行初步的学习和整理。
十余年的大新网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整大新建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“大新网站设计”,“大新网站推广”以来,每个客户项目都认真落实执行。
PopupMenuItem 为单个 item 的弹出样式,默认为 48px 高,可根据需求自行定义。 item 中可以自定义需要的样式,包括文字图片等一系列样式。
Tips: 若需要处理带图标的样式时,官网提供的 Demo 是借助的 ListTile 来处理的,但是小菜测试发现图标与文字距离偏大,原因在于 ListTile 默认左侧图标 leading 距离不可直接调整,建议用 Row 或其他方式调整。
CheckedPopupMenuItem 是一个带有复选标记的弹出菜单项。默认高度同样是 48px ,水平布局使用 ListTile 复选标记是 Icons.done 图标,显示在 leading 位置;同时只有在状态为选中时才会显示图标。
PopupMenuDivider 是一条水平分割线,注意数组要使用父类 PopupMenuEntry ,配合其他 item 样式共同使用。 PopupMenuDivider 可以调整高度,但无法调整颜色,有需要的话可以进行自定义。
PopupMenu 默认的弹框位置都是在右上角,且会挡住标题栏,如果有需要在其他位置弹框就需要借助 showMenu ,主要通过 position 属性定位弹框位置。
menu 的宽高与内容相关,小菜的理解是在水平和竖直方向上会将设置的 position 位置加上 menu 宽高,再与屏幕匹配,超过屏幕宽高,根据 position 按照 LTRB 顺序贴近屏幕边框展示。
Tips: 如果 item 个数过多也无需担心,Flutter 支持默认超过屏幕滑动效果。
小菜目前的学习还仅限于基本的使用,稍高级的自定义涉及较少,如果又不对的地方还希望多多指出。
洛克人--钢铁之心1
釴V�B~??
蓞?ee韬h
故事开始的时候,Rockman已经到达其中一个岛上寻找矿藏水晶,而他亦终于找到了水晶。当他开始拿水晶的时候.洞穴中的机关亦同一时间开启了。一幕如“夺宝奇兵”的逃亡开始了,而Rockman亦最终能够逃出,而玩家亦可以开始控制Rockman。当玩家在这个洞穴中前进时,萝儿便会一直教导玩家操纵。而途中有一些里佛巴特会攻击Rockman,玩家亦可以得到“强力举重机”。这一个洞穴基本上没有甚么难度,只有一条直路。而玩家亦会见到障碍物,而玩家要破坏机关以破坏障碍物。当破坏了障碍物后,Rockman及萝儿的通讯中断了,而进入后便遇到第一只首脑。这只首脑的攻击模式比较单调,它只会用右手攻击Rockman,玩家只须要等待它攻击时走远,再用锁定键进行攻击便可以轻易取胜了。 裠` JZ?5
!"豫蹐?w
战胜后,首脑便会停止活动,而Rockman亦就此离去,但不料它竟会再次起动,而且追著Rockman出去。正当Rockman被逼到走投无路之际,他忽然勇敢地从万里高的塔跳下海洋。谁知原来萝儿的飞行船在等待Rockman,他们亦高飞远去了…。 Z妨楬[ff?
瘱?"r岲?
豪q?娊?
第一章~拯救旧货店老板 怩?�烪0?
当Rockman一行人离开了那个洞穴后,一行人高兴之时,巴瑞尔(萝儿的老爷爷)突然告诉Rockman及萝儿飞行船有严重的问题,于是萝儿便急于寻找一个地方降落。巧合地,他们见到卡特罗克斯这个小岛,于是萝儿马上降落。可幸的是大颗儿没有受伤,不过飞行船便受到严重的伤害,大颗儿只好好好地修理它。而此时玩家可以达它交谈,记录进度,此外亦可以不时回复能源。Rockman于是便四处寻找,结果他找到一个城市的标志,走近时有一辆警车刚刚来到。原来他们是因为见到Rockman一行人降落,所以前来检查一下。他们要求Rockman一行人中其中一位成员跟他们去城市填写一下移民表格以取得识别证卡及登记卡,如果不是便不能入城市了。于是贝瑞尔便跟他们前往,而萝儿便叫Rockman趁机前往市场找一些东西修理飞行船。 %|鶧鞘%6�
Kn??}??
在进入市场之前,Rockman见到一个人在废墟徘徊(他便是旧货店的老板)。原来他正考虑进入废墟。于是Rockman便进入了市场。在四周徘徊之后,Rockman终于到了旧货店(最前面的右方的店铺)。进去后问店的老板娘有关飞行船的零件时,她说老板正去了挖掘(即去了地底下找旧的零件),但是已经去了很久,于是她便拜托Rockman去找他回来。受旧货店的老板娘所托,Rockman便到了那个废墟找旧货店的老板(在进入市场前的左方)。进入后,Rockman一直听到有人求救,Rockman便一直前进,沿途会有一些里佛巴特,终于见到了旧货店的老板,他正被一群里佛巴特的蛇围著,Rockman便立刻为他解为,消灭所有敌人。其后,旧贷店的老板谢谢Rockman求了他,并说出去后可到他的店中给Rockman一点东西便溜了。此时玩家可以继续前进,因为前面有“快速发射”的零件。 ]鹋l? 掆?
幼?犄壮
回到市场途中会见到一只飞行船及两个小机械人,进入市场后,Rockman便找旧贷店的老板,他们为了答谢Rockman,于是便送了Rockman一个“地雷零件工具箱”及一部补给车,可是他们没有船的零件给Rockman。而且Rockman更得知如果得到了B级挖掘工执照便可以从南方的森林及北方的克罗赛森林进入废墟。 蓭筝�飕
8k逆滈??
耷?醚??
第二章~卡特罗克斯之危机 墔歳�偌贺
Rockman于是便出去找那部车子,而萝儿及达它亦来到,而一行人便进入了车子中,萝儿在车子中找帮Rockman改装“地雷零件工具箱”为放置地雷,她亦会好好地修理车子。(以后如果得到任何旧的零件可以给萝儿改装的)。离开车子后,有一名警察前来给Rockman识别卡,同时亦告诉他们海盗前来攻击这个城市。于是Rockman便进入市场的尽头见到三名小孩,Rockman要慢步接近才可以偷听他们所说话内容…。 殕U陧%才t
鲭悁?煷^
进入城市后,画面一转,见到一个少女与三个小机械人商议…。Rockman进入后一直上去北面市政厅前进。进入后见到一名少女(她便是海盗)…,进入了市政厅后,见到巴瑞尔和市长,原来市长是巴瑞尔老朋友。巴瑞尔更拜托Rockman照顾萝儿及提防海盗。出了市政厅后,Rockman听到一把少女的声音,原来她正被一只狗追著,Rockman于是跟著她们去南门,在那里Rockman为那名少女解围,而少女亦在解围后离去。Rockman再到市政厅,见到三名男孩与警察交谈,得知他们正应为那名少女是海盗。Rockman便找萝儿商量,但见到那只飞行船正开始攻打城市。萝儿担心巴瑞尔的安全,于是他们进入城市。在市区中见到两名警察,他们以安全理由阻止Rockman等人进入,但最终Rockman便进入。(玩家最好先装备能源水壶及炸弹才进入,因为玩家须要连续打四场战斗) 狊膄苳鹦 U
钟\D?F苂
在北门见到多部机械人围著,而且还锁了门,交谈之后得知他们是邦氏家族,而且正打算攻击市政厅。Rockman见到后便只好与他们决斗。在这次战斗中,Rockman的主要目的不是要击败所有的敌人,而是取得在他们手上的锁匙。他们有三部战车(他们各布特性:红的很会战斗、蓝的速度很快、黄的体力很高),两部飞行战斗器,玩家最好是主攻地上的战车,他们会常常传递锁匙的,所以玩家要看准哪一部才是有锁匙。玩家亦可以分散进行攻击,从而分散他们的攻击力。 鍻�(舲薣
{)x?�B?
囗傂糒Kn
第二章~卡特罗克斯之危机(续) 聿^�坞瓌
当击败他们、取得锁匙后,那名少女驾驶一部机械人前来,原来她的名字叫特朗。而这埸战斗亦无可避免的。特朗所用的攻击模式主要是以炸弹、火炎及地震为主。玩家只须要小心她的攻击模式,如当她用炸弹时可接近直接攻击。这一场战斗不是太过困难。 +g丏霺?
aS W?$v
当特朗被打败后,她便逃去,而Rockman亦前往市政厅中。进入了北门后,新闻报导员正在报导海盗围攻市政厅,而Rockman亦及时来到,战斗立刻展开。在这个Mission,玩家要一方面防止敌人攻击市政厅,不能让它被破坏,另一方面亦要击败所有敌人。红色的机械人会主攻市政厅;而黄色的机械人会攻击接近它的建筑物;上空的机械人是会一方面攻击Rockman,另一方面在地上的机械人被消灭时,它会拿新的机械人破坏市政厅。所以即使消灭了所有地上的机械人也好,它们会无限地出现的。玩家可以先消灭地上攻击市政厅,再攻击空中的机械人,攻击空中的机械人时,玩家须要用锁定模式攻击。 ?五尿v
Q;�槮m¤
当消灭了所有的机械人时,另一部黄色的机械人会前来攻击Rockman,〔它主要用舌头、双手攻击Rockman〕而且它会破坏附近的建筑物。玩家可以不时接近一些建筑物(如树),引它注意,再攻击它便可消灭它了。当Rockman消灭了它时,特朗会带它离开。而画面一转向敌人的首脑邦尼身上,他正在期待著今天的新闻,不料Rockman竟破坏了自己的大计,而且决定下次一定要消灭Rockman…。 蹝2b?蚈H
小菜在学习时需要用到气泡效果,为了更加灵活,小菜封装了一个简单的 flutter_bubble 气泡插件,方便日常的使用;
小菜准备用 Canvas 的 drawPath 进行绘制,主要分为三个部分,圆角弧线,普通直线,尖角折线,均可由 drawPath 自带方法绘制;小菜以前整理过关于 Canvas 绘制的小博客,实现很简单;
小菜绘制了一个简陋的原型图,整体黑框为 Bubble Widget 整体范围;蓝色圆弧为圆角位置;红色尖角可根据上下左右参数进行配置,且只可展示一个,尖角的高度和角度可自由配置,当确定一个尖角位置时,其余三个方向宽高延伸到黑框部分;而橙线则是连接圆角与尖角等直线;中间空余部分为子 Widget 位置; Tips: Child Widget 宽高小于等于 Bubble Widget ;
首先在边角处绘制四个圆弧,直接用 arcTo 即可,需要注意的是:小菜整体以 drawPath 方式实现,准备从左上角开始顺时针绘制,所以绘制圆弧时也是顺时针方向;
小菜理解, Rect 为绘制圆角的矩形,包括位置及大小; startAngele 为起始角度; sweepAngle 为绘制弧形角度;小菜需要的四个圆弧大小均为 pi/2 ,只需调整矩形位置与起始角度即可;
其次绘制尖角,小菜的尖角是由 lineTo 两段直线拼接起来的,只需要处理起点与终点即可;小菜为了更加灵活,可以设置尖角高度与尖角角度(0 ~ 180),通过三角函数进行计算;
最后就是将处理好的连接起来,小菜为了适应更多场景,尖角位置也可自由配置,长度为到圆角的距离,默认为边框中间位置;
小菜将配置逻辑编辑好发布到 Pub 库,基本 BubbleWidget 便完成,简单分析一下可配置项;
自定义 Bubble Widget 是小菜发布的第二款 Pub 插件,还有很多不完善的地方,如有错误请多多指导!