使用阿拉伯字体时文本对齐问题

Far*_*han 12 android arabic text-alignment android-edittext

下面的截图显示了我的问题.

第一个EditText显示阿拉伯语的提示向上移动,现在第二个EditText仅供参考,显示英语版本完全正常.同样适用于Button.

我已经strings.xml像这样声明了字符串:

<string name="ar_login">????</string>
Run Code Online (Sandbox Code Playgroud)

问题的截图

这就是我设置EditText的提示的方法:

UserName.setTypeface(ArabicFont);
String hint = getString(R.string.ar_HintUserName);
....
UserName.setHint(hint);
Run Code Online (Sandbox Code Playgroud)

更新: 我用过这个,但没用:

UserName.setGravity(Gravity.CENTER_VERTICAL);
Run Code Online (Sandbox Code Playgroud)

但有了这个,文字略微下降了; 但我猜它不是通用的:

UserName.setPadding(0,15,0,0);
Run Code Online (Sandbox Code Playgroud)

随着Padding,English话语向下移动.

更新2: 最初的阿拉伯文本是分开的; 意味着它们是逐字显示的.所以加入他们,我正在使用这个阿拉伯语重塑者.要下载代码,请选中此链接

现在,当我重塑阿拉伯语文本然后设置TextView或作为EditText's提示时,它已经向上移动,但没有重塑它是好的.

所以我想,我是否必须更改重塑类或使我的textview不分割这个词.但不知道去哪儿了?

Far*_*han 3

我仍然无法找出为什么 Android 将阿拉伯语单词拆分成单独的字母,无论如何,在我的第二次编辑中,我提供了一个链接,该链接使用一个类重新连接分隔的字母并再次形成一个单词。

reshape函数中,它错误地附加\n在末尾,只需将其删除即可解决问题。