问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

【Axure实战】15.社交类项目-模拟聊天列表及聊天窗口(二)

发布网友 发布时间:2022-10-26 15:32

我来回答

1个回答

热心网友 时间:2023-09-17 03:22

接上篇文章,这次主要来讲解一下聊天窗口的制作,首先看一下效果图:

我们要实现4个部分的功能:

1. 好友聊天内容(关于实现与聊天列表中的内容一一对应本节未进行制作,这部分会在下篇文章中讲解)

2. 我的聊天内容

3. 文字输入框

4. 发送按钮

那么闲话少叙,我们直奔主题

step1:制作好友聊天内容单元,这节中我们将好友聊天的内容直接写死在上面,如图1所示,我们根据需求设计一个聊天内容单元的样式,有头像,聊天内容和时间。

step2:在中继器-数据中根据需求新建列并对应填写数据【如图2.1】,并在使用中继器的交互给好友聊天内容单元初始化,填充内容【如图2.2】。具体初始化方式请参见上篇文章,至此我们得到了一个仅供展示的好友聊天内容单元。

step3:制作我的聊天内容样式,使用基本元件搭建文本气泡,头像图片和消息发送时间【如图3】。

step4:新建中继器,新建两列内容命名为ChatMessageIsay和MyAvatar并留空【如图4】,其中ChatMessageIsay的作用是为了后面从文本框中获取文字并加入到中继器中进行显示,而MyAvatar则是为了方便后期给中继器添加行的时候预留的(后期我们可以使用全局变量模拟头像URL来模拟换头像的操作),在此步骤中暂时直接将头像选择固定图片。

step5:使用中继器初始化我的聊天内容,分别设置文本气泡中的文本【图5.1】,头像图片【图5.2】和消息发送时间【图5.3】,其中时间我们获取当前时间进行显示,函数写法见图。

step6:将step2和step5中制作好的好友聊天内容单元和我的聊天内容单元根据设计样式组合到一起并全选右键转化为动态面板,之后根据设计需要调整动态面板的尺寸,并将动态面板设置为垂直滚动,方便后面发送多条消息时滚动到最新发送的那条消息。【如图6】

step7:制作文字输入框,因为设计中该框仅为单层设计,故使用元件库中的文本框即可,另外多说一嘴,如果需要文字框随输入文字多少自适应变化的话,需要使用动态面板配合文本域进行制作,可以实现但是制作成本很高,远不及跟开发说一句“这个文本框尺寸需要根据输入内容动态变化,最大高度160pt来的简单高效”。另外此时文本框输入文字时是紧贴着左侧开始的,我们额外嵌套一个矩形元件来实现两边的间距【如图7】

step8:将step6和step7成果按照设计效果拼接,并排布发送键、键盘、顶部用户名,more按钮等元件【如图8】。

step9:点击顶部菜单栏-项目-全局变量>添加并命名一个新的全局变量ChatMyWords用来传递文字输入框(step7)中的内容至我的聊天内容单元(step5)【如图9】

step10:选择发送按钮,右侧交互-新建交互-单击时-下拉找到设置变量值-选择目标为step9中创建的全局变量ChatMyWords-设置为元件文字-元件选择为step7制作的输入框MessageField【如图10】。通过这个交互我们实现了将输入框中的文字存储于全局变量中。

step11:紧接着我们要将这个全局变量中的聊天内容显示在我的聊天内容单元中,做法依旧是在发送按钮上,右侧交互-添加动作-添加行-目标MyChatUnit-添加行【如图11】-在ChatMessageISay列中点击fx-插入变量或函数找到ChatMyWord-确认返回【如图12】。至此当我们点击发送按钮时,文字输入框中的内容就将显示于屏幕中。

step12:此时依然有个问题,当我们点击发送按钮时,文字输入框中的文字不会清空,故我们需要设置当点击发送按钮时-添加动作-设置文本-目标选择文字输入框MessageField-设置为文本-值留空【如图13】。这样当我们点击发送按钮时文本框中的内容就会清空,方便我们继续输入。

step13:已经做的差不多了,但此时当我们连续输入多个内容,到动态面板的尺寸显示不下时,最新的内容会藏在下面,所以我们继续优化每次发送时将动态面板中的内容滚动到最新发送的消息上。做法:点击发送按钮-添加动作-滚动到元件-目标MyChatUnit-垂直滚动-动画留空或自定义【如图14】。这样每次输入的时候都会滚动到最新发送的那条消息啦。

通过在发送按钮上添加以上步骤的交互【如图15】,就实现了我们开头动图中的效果啦,点击预览试一下吧。

OK下一篇文章我们会继续完善这个页面,实现聊天列表和聊天页面的联动。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
若cpu一秒执行n次运算需耗能5w,那执行2n次运算要耗能是大于小于还是等于... 大神们,N5G跟N5W哪里不一样? 刚出生的婴儿会感冒吗 刚出生宝宝感冒的症状 怀庄永佳福代理,什么品牌白酒好呢? 做白酒品牌代理,有怀庄永佳福牌子怎么样? 怀庄永佳福白酒喝得人多吗?代理怎么样? 为什么很多女性都把男闺密当作结婚对象? 关于电影“罗生门”的问题 实际利率法是指什么 家装瓷砖买什么材质的好 家装瓷砖买啥材质的好 谁能帮我娶个名啊!女孩,姓毕!孩子是阳历2011-08-13-11点18分!要求3个字 我是13届毕业生,今年考上研究生,我把档案提出来,可以开学时带过去吗? 13届毕业生如何保留应届毕业生身份参加两年内的公*? 四川外语学院成都学院日语专业学费多少? 偶想问一哈学日语或韩语大概要多少钱? 佛山小学排名榜 四川外语学院的日语专业一年学费就是6875元算贵吗? 请问目前在成都学习日语初级大概要多少钱啊? 两只老虎的故事! 儿童上下床实用吗 儿童上下床哪种比较好 喜梦宝儿童床好不好啊?求分享,在线等 儿童上下床什么牌子好,什么是儿童上下床? 李斯谏秦始皇 舒乐乐虞启铭小说名字? 理论力学左叉乘右叉乘是什么? 坐标系中,为什么i×j=k而j×i=-k 0到1岁的宝宝可以吃有油盐的稀饭不? i乘j等于多少 宝宝多大的时候可以给宝宝吃盐和油的呀? 通讯电缆标准连接方式 5类50对双绞线通信电缆对接方法 50对的通讯电缆中间被烧了怎么插接 坐高铁动车是否可以携带电览线 坐高铁动车是否可以携带电览线? 充电动车16A用4平方电缆线能行吗? 坐高铁能带电缆线吗? 求上海火车站3号线地铁口的准确位置 上海火车站离上海南站有多远呢,怎么走呢? 帮忙提供一下上海虹桥火车站的站内地图 上海的火车站 关于盗窃罪的法律规定 54和90能约分吗? 关于高空坠物的法律规定有哪些呢 九十分之54约分 刑法关于传染病的法律规定 将54分之90先约分在化成带分数的算式是什么? 54分之90约分成带分数 关于高空坠物法律规定有哪些? 90分之54约分之后是多少?