童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

Axure教程:巧用中继器模拟App聊天界面

10月10日 霸鲸观投稿
  本教程需要一定的Axure使用基础,重要知识点:中继器、动态面板、函数的使用。
  前言
  一般聊天界面一般包含下列元素:
  导航栏及其操作按钮。
  聊天气泡,包含聊天双方的气泡、头像、消息发送时间、发送状态。
  消息输入框。
  基本操作简要逻辑是:在输入框输入一段文字,点击【发送】按钮,聊天列表就会出现一条新的消息。
  由此Axure实现思路则是:输入文字,点击【发送】在中继器里更新一条新的数据。
  Let’sdoit!!!
  为了方便阅读,可下载原型对照原型阅读更容易理解。原型地址:
  链接:https:pan。baidu。coms1VIHyaPrQpBVG7kaKavWCSA密码:xs9v
  一、布置基本页面
  基本界面
  1。布置好导航栏
  2。布置好输入框和键盘,并添加以下事件:
  获取焦点时键盘展开,失去焦点时键盘收起。
  指定提交按钮发送。
  输入框没内容时,发送按钮禁用,有内容时,启用。
  二、配置中继器
  中继器元素构成
  要注意下:
  1。聊天气泡分为对方的消息气泡和我的消息气泡,如何在一个中继器里呈现呢?
  2。消息内容有长有短,怎么根据内容的长短适配气泡大小呢?
  问题1:其实在聊天列表里,不论是谁发送了什么样的信息,本质上是在一个列表里面插入了一条数据,而这个列表的单元项可以不同的形式展现。所以用用动态面板可以完美解决问题。对于不同的消息类型,展示不同的面板状态。
  如下:
  聊天气泡4种类型
  这里我另外创建了一个汽车商品卡片类型和发送之后的消息样式类型(模拟淘宝发送商品信息)。
  确定展示形式之后,设置中继器以下数据项:
  type为气泡类型标记数据,根据这个数据的值加载为对应的气泡类型
  text气泡内容
  time消息发送时间
  loloading图标展示状态(稍后说明)
  times时间显示状态(稍后说明)
  问题2:可以在加载中继器时通过函数length获取到文字长度,再根据单个文字的宽高,计算气泡应有的大小,然后根据求得的值设置气泡尺寸。
  计算方式:
  宽:〔〔Math。min((14Item。text。length20),205)〕〕
  205是气泡最大宽度,14是单个字的宽度,20是气泡首尾填充宽度,item。text。length获取字数。
  14item。text。length20则是计算一行字所需要的气泡宽度,Math。min(X,Y)则是求两者间最小值,所以这句话意思是当宽度值超过205时,宽度为205,小于205时,则展示为实际宽度。
  高:〔〔((Math。ceil(Item。text。length13))1820)〕〕
  13是每一行的能显示的文字字数,18是每一行的高度,20是上下填充高度,Math。ceil()则是向上取整,因为13除不尽。只要有一个小数说明多了至少一个字,则需要加一行。
  三、中继器赋值
  1。气泡赋值
  载入时赋值事件
  载入时,判断中继器数据列表type字段,根据这个字段的值显示为不同气泡类型,然后将数据赋值给指定控件。
  2。设置中继器行间距,避免聊天气泡显得拥挤。
  设置中继器行间
  3。时间控件显示判定
  由于时间控件不是一直显示的,5分钟内连续对话的,则不在信息气泡之间显示时间,只在第1条信息气泡顶端显示时间。通过判断新的消息与上一条的消息的时间间隔,来控制是否显示时间。当时间间隔大于5分钟时,展示时间控件,当时间间隔小于5分钟时,隐藏时间控件。
  如何获取新消息与上一条消息之间的间隔时间呢?
  这里我想到了一个简单的方式,当用户点击【发送】按钮时,获取当前时间,与上一条信息的发送时间(存于全局变量中)对比,若时间间距小于5分钟,设置时间显示状态为0,否则为1,同时也添加时间和信息内容、面板类型数据。所以数据项times的意义就在于标记时间控件的显示状态。下面则是在时间控件上添加的事件。
  判断时间是否显示
  注:隐藏时时间控件时,聊天气泡、loading图片、头像应该均往上移动,避免不必要的间隙。
  4。loading控件展示控制
  a。由于loading图标一般只展示一瞬间,显示完成后则隐藏,不必再显示,所以需要一个数字标记loading图标展示情况。
  b。loading按钮的位置跟随气泡右对齐。
  则在loading控件上添加如下事件。
  判断是否展示loading按钮
  最后将中继器建立为动态面板,命名为消息列表,设置为自动调整为内容尺寸。这样动态面板的尺寸就会根据消息气泡的多少自动调整高度。
  自此,中继器总算配置完了
  三、发送消息
  1。输入框
  前面已经说过输入框的基本交互,但还需要补充一些。
  输入框事件
  获取焦点时,消息列表上移。移动的距离是〔〔A。height290〕〕A是局部变量元件消息列表。height则是消息列表的高度。
  局部变量
  同理〔〔A。height520〕〕则是键盘收起来时的消息列表移动的距离。
  值得注意的是,一定要添加边界。防止当消息列表没那么长,收起键盘时,消息列表不会出现以下情况。
  没有添加边界时收起键盘
  2。发送按钮
  发送按钮事件
  a。给发送按钮添加事件,点击【发送】按钮,将输入框内容、当前时间、loading状态、气泡类型等数据插入中继器。
  添加行到中继器
  第二种气泡类型:type2
  输入框内容:text〔〔text〕〕
  获取当前的小时、分钟:time〔〔Now。getHours()”:”Now。getMinutes()〕〕
  loading状态为展示:lo1
  times〔〔(Now。getTime()lasttime)waittime〕〕
  lasttime为全局变量,为上一条消息的发送时间,waittime也为全局变量,为等待时间,gettime()则是获取当前时间,如果times等于1说明间隔时间超过等待时间,展示时间控件。否则不展示时间控件。
  b。清空输入框。
  c。移动消息列表,由于新增了一条消息,列表则上移展示出最新的消息。
  d。将当前发送消息的时间赋值给lasstime。
  四、其他事件
  1。将键盘和消息列表选中,生成一个新的动态面板。加入下面事件。此事件的目的是限制聊天列表的滚动范围。
  动态面板加入事件
  最终演示效果:
  这样就基本就完成啦,共享的原型里还有一些文章没有讲到的Axure小技巧大家可以参考参考
投诉 评论 转载

AxureSVN(服务器搭建运用),产品经理的硬实力文章主要给大家介绍一下AxureSVN,按照代码管理的方式来管理我们的产品原型文档。技术伙伴在访问https:xxxx。axshare。com的原型链接时,是否经常吐槽怎……Axure教程利用中继器做可以翻页的列表相信所有的产品经理以及有志于成为产品经理的人对中继器都不会很陌生,做为axure的两大高端功能之一,对中继器的了解往往可以检测一个人的axure使用水准。本教程将为大家介绍中继……“采坑,填坑”,项目的那些事儿(第四阶段:原型设计)在产品规划项目进程中,需求确立后,就需要根据相关的讨论进行原型的交互设计了。本文讲的是本系列文章的第四阶段原型设计。需求探讨;用户调研;需求汇总、沟通、评审;……Axure8。0:同一个元件实现“关注”按钮状态切换本文主要单研究一些产品设计中的小交互效果(后续持续更新),关注按钮的关注和取消关注切换,伴随状态变化的toast提醒。产品原型设计在产品经理的日常工作中,可以说是再熟悉不……Axure:制作PC端聊天窗口原型之前写文档没有用axure,最近才接触这个软件,觉得原型制作还是挺有趣的。闲来琢磨了一下里面的功能,边做边学,做了一个PC端的聊天窗口。现在还不够完善,只是将大概功能实现出来。……Axure教程:巧用中继器模拟App聊天界面本教程需要一定的Axure使用基础,重要知识点:中继器、动态面板、函数的使用。前言一般聊天界面一般包含下列元素:导航栏及其操作按钮。聊天气泡,包含聊天双……5个工作日完成一个完整的原型,如何做到?最近,我在CanvasFlip1上的团队得到一个任务:在一个星期内完成原型并进行可用性测试,当我的设计团队发现我们只有5个工作日的时间来完成一个完整的原型时,我们惊慌失措!……APP九宫格如何用Axure画出来?九宫格用来平铺展示很多频道或者栏目。那么如何用Axure画出该功能呢?常用场景有“微信APP我钱包”、“淘宝APP首页频道”、“支付宝APP首页”。一、原型画法(无……APP开关功能怎么用Axure画出来开关用来控制某些功能的开启和关闭。那么APP开关功能怎么用Axure画出来呢?常用场景有“是否允许新消息通知”“加我为好友是否需要验证”“是否允许APP给我推荐通讯录好友……表格设计(上篇):18种样式,与你分享最近在做一款工具类软件,主要涉及表格的设计,边工作边整理了一些表格的设计样式和原型图,拿出来与需要的人分享。欢迎与我交流,有需要原型的小伙伴也欢迎在下方留言。表格样式一……作为PM,你居然不知道Axure这10种非交互功能?提到Axure,这可是绝大多数PM童鞋靠着吃饭的家伙事儿。Axure被很多人定义为一个以交互见长的原型设计工具。很多初入坑甚至入坑甚久的PM为画出炫酷的原型挖空了心思。我想这对……Axure教程:制作待办事项列表待办事项是我们做时间管理时一个很好的工具,那么我们如何用Axure做一个待办事项列表呢?这就要用到中继器这个功能。中继器在英文里repeater。直译过来就是中继器,但是中继器……
在UI设计中,如何更加科学地提高文本可读性?UI设计师对广告文案的思考:我们,真的不需要懂文案吗?在接下来的9月,这3个趋势会影响更多的设计作品AIPersona:语音交互设计中的角色画像设计基础:云计算交互设计师的正确出装姿势不会因为不懂设计而被束缚!面向萌新的10条基本规则除了下拉菜单之外,你还有更好的选择用户体验好不好?我用案例对比告诉你!优化UI界面会惹怒用户?你应该这么做UX与心理学携手共进:如何在交互设计中应用格式塔理论?汉堡图标的5种替代方案,帮你搞定移动端导航表单设计总结冬天鸽子能孵出小鸽子吗财产保全担保金额是多少停火结束,俄满列军火进入前线,开启疯狂报复,泽连斯基悔不当初火箭首发变脸!5小阵容告别?塔克难回5号位,4场试验未达预期2018运动会加油稿跳远信仰是心灵的寄托道德的依归作者区文伟几个母乳喂养中常见的小难题魂牵梦绕话火盆NBA还能看个啥不要让朋友圈和父母渐行渐远作文中国大都使用手机,为何发达国家却流行固定电话?看完你就知道了赞美西湖美景的作文500字

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界