Ошибка выравнивания текста при использовании арабского шрифта

Снимок экрана ниже показывает мою проблему.

Первый EditText показывает намек на арабском языке, который сдвинут вверх, теперь второй EditText предназначен только для справки, который показывает английскую версию полностью точно. То же самое касается Button .

Я объявил строку в strings.xml следующим образом:

 <string name="ar_login">دخول</string> 

Скриншот проблемы

Вот как я установил подсказку EditText:

 UserName.setTypeface(ArabicFont); String hint = getString(R.string.ar_HintUserName); .... UserName.setHint(hint); 

ОБНОВЛЕНИЕ: Я использовал это, но бесполезно:

 UserName.setGravity(Gravity.CENTER_VERTICAL); 

Но с этим текст немного пошевелился; Но я думаю, что он не является общим:

 UserName.setPadding(0,15,0,0); 

С помощью Padding English слова перемещаются вниз.

ОБНОВЛЕНИЕ 2: Первоначально арабские тексты разделены; Означает, что они отображаются буквами по буквам. Поэтому, чтобы присоединиться к ним, я использовал этот арабский Reshaper . Чтобы скачать код, проверьте эту ссылку

Теперь, когда я изменяю арабский текст, а затем устанавливаю TextView или как подсказку EditText's , он сдвигается вверх, но без перестройки это прекрасно.

Поэтому я предполагаю, должен ли я изменить класс reshape или сделать свое текстовое изображение не разбитым словом. Но не знаете, куда идти?

Solutions Collecting From Web of "Ошибка выравнивания текста при использовании арабского шрифта"

Я все еще не могу понять, почему Android разбивает арабские слова на отдельные буквы так или иначе во втором редактировании. Я предоставляю ссылку, которая использует класс, чтобы присоединиться к выделенным буквам и снова сформировать слово.

В функции reshape это было ошибочно добавление \n в конце, просто удаление его решает проблему.

Я уверен, что проблема с файлом шрифта, который вы используете.!

[Извините, мне не разрешено загружать снимок экрана, так как моя репутация ниже :(]

Для макета я устанавливал текст в xml и шрифт в коде. И я не устанавливаю никаких атрибутов, например padding / gravity. Но он отлично работал для меня.

Поэтому я могу заверить вас, что использование файла шрифта, стиль которого соответствует вашему требованию, решит вашу проблему.

Просто, чтобы помочь вам, но я не уверен, что получил файл шрифта от DroidSansFallback.ttf

Просто догадка 🙂 …,

  1. Что, если размер арабского шрифта ниже? [Если это так, то Gravity.CENTER_VERTICAL должен был сработать для вас :(]

  2. Может быть, это стиль этого файла шрифта. Как пробовать другой файл шрифта для арабского текста?