在Android中,当TextView从RTL资源(如阿拉伯文本)或LTR资源(如英语)获取文本时,其文本方向(或重力)似乎会自动更改。默认的TextView方向(或重力)是什么,如何获取它? 实际上,我正在尝试找出输入的文本语言类型(RTL还是LTR)?如果是混合文本,其中包含RTL和LTR,怎么办?
在Android中,当TextView从RTL资源(如阿拉伯文本)或LTR资源(如英语)获取文本时,其文本方向(或重力)似乎会自动更改。默认的TextView方向(或重力)是什么,如何获取它? 实际上,我正在尝试找出输入的文本语言类型(RTL还是LTR)?如果是混合文本,其中包含RTL和LTR,怎么办?
默认的TextView方向(或重力)是什么?
在TextView源代码中,它被初始化为:
private int mGravity = Gravity.TOP | Gravity.START;
看起来是 Gravity.TOP
和 Gravity.START
。 START
与 LTR 或 RTL 无关。
如何获得它
因此,获取它(你只知道 Gravity.START
)对于你的目的是无意义的 - 查找输入的文本语言(RTL 还是 LTR)的类型。
对于其他方法,您可以估计文本本身是 RTL 还是 LTR;例如在这里讨论:在 Android 中识别 RTL 语言。
TextView textView = (TextView) findViewById(R.id.text_view);
int gravity = textView.getGravity();