匿名
匿名
  • 发布:2016-01-12 10:41
  • 更新:2017-10-11 17:40
  • 阅读:3504

模板-聊天页面-chat有个不能完全显示的问题

分类:MUI

在mui示例的im-chat.html中,系统默认提供了一条消息(record.length==1),此时页面显示正常。

但如果消息列表增大为10条甚至更多时,最后面的一条无法完全显示。如下图,初始数据是到10的,但是只显示到9(不仅scrollTop不对,而且10这条消息拖不过去,怀疑是高度问题):

这时候我再发送个11,可以看到,消息列表显示正常了(隐身的10也显示了)。

发送前:

发送后:


初始化的消息列表,是到10的:  
var record = [{"sid":"1-2","sender":"self","content":"1","type":"text"},{"sid":"1-2","sender":"self","content":"2","type":"text"},{"sid":"1-2","sender":"self","content":"3","type":"text"},{"sid":"1-2","sender":"self","content":"4","type":"text"},{"sid":"1-2","sender":"self","content":"5","type":"text"},{"sid":"1-2","sender":"self","content":"6","type":"text"},{"sid":"1-2","sender":"self","content":"7","type":"text"},{"sid":"1-2","sender":"self","content":"8","type":"text"},{"sid":"1-2","sender":"self","content":"9","type":"text"},{"sid":"1-2","sender":"self","content":"10","type":"text"}];  

如果把界面底部footer的样式中的高度从50px-->5px,则可以显示完全。  
            footer {  
                position: fixed;  
                width: 100%;  
                height: 50px;  
                min-height: 50px;  
                border-top: solid 1px #bbb;  
                left: 0px;  
                bottom: 0px;  
                overflow: hidden;  
                padding: 0px 50px;  
                background-color: #fafafa;  
            }  

如图:

可以看到,此时高度是对的(可以拖动看到完整的消息),滚动位置没改有点问题。故初步推断,是同一个子webview中的列表div和footer的高度问题(页面初始化时&&初始消息列表足够长时,列表div的高度被footer挤压了,导致最后一条消息看不到也拖不动)。但发送消息后,列表会从不正常变成正常。

2016-01-12 10:41 负责人:无 分享
已邀请:
匿名

匿名 (作者)

原先的临时方案是:
在页面初始化时(plus.ready)调用模板生成列表的html之前,在record这个数据源中追加一个空元素,在渲染列表之后再删除这个空元素,那么可以变相解决这个问题。
但是,如果页面初始化时record这个数据源比较小时,高度足够时,那么就会多出个空消息,明显也是不对的。
在这个基础上,对record的length做判断,也是不精准的。因为分辨率不一样,每条消息的所占高度也不是一样的。
那么,最终还是要回到消息列表div和footer的高度问题上。

请问hello mui中的im-chat页面的这个高度问题如何解决?

1***@qq.com

1***@qq.com

我也遇到这个问题 你是怎么解决的呢

1***@qq.com

1***@qq.com

我多邀请了一些人 帮忙看下

7***@qq.com

7***@qq.com

你好,我想请问一下你的示例代码是从哪里找的,我在mui示例里也没找到,如果方便的话可以把源代码发给我吗谢谢你了!

该问题目前已经被锁定, 无法添加新回复