geelaw
2023-03-18 22:43:31 +08:00
这个问题很好,下面是我的想法。
1. 异侧还是同侧?
别人发的、自己发的分别在两侧似乎仅适合窄界面(例如手机)。Windows 上的 Telegram 会根据宽度决定布局——如果聊天面板不够宽,则自己发的显示在异侧,否则显示在同侧。
2. 为什么要异侧?
异侧显示可以增加“发件人是谁”的视觉提示。窗口窄的时候异侧显示不会带来“行定位”的困难。
3. 为什么不异侧?
窗口太宽的时候,异侧显示在连续阅读历史时眼睛很累——需要不断切换方向,并且太宽的时候“找异侧的下一行”很困难。
4. 为什么其他人发的在左侧,自己发的在右侧?
这和文本的渲染方向有关系,中文、英文横排是从左到右书写,用户最需要的是阅读他人发来的消息(因为用户通常还记得自己发的消息是什么),设计上应该降低这件事情的难度,他人发来的消息的开头永远在窗口左边(阅读时一行开头的位置),非常容易定位——相比之下,用户自己发的消息的开头处于窗口中间,而且具体是中间的哪里和消息长度有关,定位起来稍微费力一些。
此外,“发送”按钮也在右侧,如果有发送动画,那么输入消息的文本框会移动到消息历史里的位置,此时移动到左边不如移动到右边(刚刚点击的按钮所在的位置)自然——即“局部性”(对右边进行了操作,自然希望效果出现在右边)。
阿拉伯文、希伯来文等横排从右到左书写的语言里,自己发的消息会显示在左边,其他人发来的消息会显示在右边。因为这些文本的用户每行是从右边开始阅读。