Poniższy zrzut ekranu przedstawia mój problem.Problem wyrównania tekstu podczas korzystania z czcionki arabskiej
Pierwszy znak EditText
pokazuje podpowiedź w języku arabskim, która jest przesunięta w górę, teraz drugi numer EditText
służy wyłącznie jako odniesienie, co pokazuje, że wersja angielska jest całkowicie w porządku. To samo dotyczy modelu Button
.
I zadeklarowały ciąg w strings.xml
tak:
<string name="ar_login">دخول</string>
ten sposób ustawić EditText za podpowiedź:
UserName.setTypeface(ArabicFont);
String hint = getString(R.string.ar_HintUserName);
....
UserName.setHint(hint);
UPDATE: użyłem tego , ale bezużyteczne:
UserName.setGravity(Gravity.CENTER_VERTICAL);
Ale z tym tekstem przesunął się nieco w dół; ale sądzę, że to nie jest ogólna:
UserName.setPadding(0,15,0,0);
Z Padding
, English
słowa przesunąć do dołu.
UPDATE 2: Pierwotnie teksty arabskie są rozdzielone; oznacza, że są pokazywane litera po literze. Więc, aby do nich dołączyć, użyłem tego Arabic Reshaper. Do pobrania kod, zaznacz to link
Teraz kiedy zmienią arabskiego tekstu, a następnie ustawić na TextView
lub EditText's
podpowiedź, ale to przesunięte upwords ale bez zmiany kształtu jest w porządku.
Sądzę więc, że muszę zmienić klasę przekształcania LUB zrobić mój tekst, aby nie rozdzielać słowa. Ale nie wiesz gdzie się udać?
To wygląda na problem z Androidem. Czy próbowałeś grać z atrybutem 'gravity'? – Macarse
Myślę, że jest to zależny od języka (arabski, angielski) problem. użyj padding_top, aby nim zarządzać. –
Z padding_Top, mam dwa problemy: najpierw nie będzie generyczny, drugi muszę zmienić padding z powrotem na oryginalny dla angielskiego. – Farhan