微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 为什么输入RTL字符时,光标分成两段

为什么输入RTL字符时,光标分成两段

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
在textview中输入某些语言时,会发现有时候光标分成2段显示,如下图所示,为什么会出现这种情况呢?


[REASON]
首先需要知道RTL语言和LTR语言,RTL(right to left)语言是指这种语言的字符的输入和显示顺序是从右到左的,一般情况下该语言字符串在手机中都会靠右显示,常见的RTL语言如阿拉伯语(ar),波斯语(fa),乌尔都语(ur),希伯来语(he/iw)等;与之对应的,LTR(left to right)语言是指从左到右输入和显示的语言,世界上大多数语言属于LTR语言,常见的英语,中文,意大利语,德语,西班牙语,葡萄牙语等等都是LTR语言。
光标分2个部分的原因是:RTL和LTR语言的显示方向是不一样的,当它们混合输入时会出现光标跳动,比如一开始输入阿拉伯语,方向是从右到左,输入英语时,方向是从左到右,此时光标会跳动到最左边的阿拉伯语上。这种混合输入可以到google网站上去体验一下。
而采用多种语言算法之后,就不会出现这种光标跳动现象了,当输入方向发生变化时,会将光标分为2个部分,分别在需要变化方向的字符的2旁,一个是主光标,一个是副光标。主光标是根当前字符的输入方向一致的,而副光标是原本的光标位置。
因此,这样的设计是为了多种文字混合输入时,给用户较好的体验,并非BUG。

签到专用楼

学习

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top