Ho un semplice TextView che dovrebbe avere android:gravity="left"
per le locali del sistema di ltr e android:gravity="right"
per le versioni locali del sistema rtl.usa locale (ltr/rtl) per gravità in TextView
La scelta più ovvia sarebbe: android:gravity="start"
ma poi ad es. il testo inglese sarà sempre allineato a sinistra ed ebraico allineato a destra.
Ecco come appare con android:gravity="start"
:
LTR locale:
| לורם| // incorrect
|test | // correct
RTL locale:
| לורם| // correct
|test | // incorrect
si suppone a guardare come che:
LTR locale:
|לורם |
|test |
locale RTL:
| לורם|
| test|
E 'possibile farlo senza l'utilizzo di una cartella di layout ldrtl con un file XML modificato? Ciò complicherebbe molto lo sviluppo perché dovrei modificare molti file di layout due volte ...
modifica: una soluzione per API 17+ è sufficiente. ho scritto locale del sistema, ma in realtà sto che permette all'utente di cambiare la lingua app del genere:
Configuration configuration = context.getResources().getConfiguration();
configuration.setLayoutDirection(selectedLocale);
configuration.locale = selectedLocale;
context.getResources().updateConfiguration(configuration, context.getResources().getDisplayMetrics());
quindi sarebbe bello se questo locale sarebbe considerato per il rtl < -> scelta litri.
Il testo in inglese viene visualizzato da sinistra a destra penso con gravità iniziale – Bhargav
sì, esattamente questo è il mio problema. C'è un modo per forzare RTL quando è impostata la localizzazione RTL? – agrajag
hai provato ad aggiungere l'attributo textdirection? ma è solo per api 17+ penso – Bhargav