Вы можете попробовать эти методы, чтобы изменить направления размещения RTL или LTR.
Для справа налево:
отл. locale: арабский (ар), иврит (он);
private void setRtl(){
String languageToLoad = "ar"; // rtl language Arabic
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
//layout direction
Bidi b = new Bidi(languageToLoad,Bidi.DIRECTION_DEFAULT_RIGHT_TO_LEFT);
b.isRightToLeft();
//save current locale in SharedPreferences
SharedPreferences languagepref = getSharedPreferences("language",MODE_PRIVATE);
SharedPreferences.Editor editor = languagepref.edit();
editor.putString("languageToLoad",languageToLoad);
editor.commit();
startActivity(...);// refresh activity.
}
Для Слева направо:
экс локали:. English (EN), тамильский (та), и т.д.
private void setLtr(){
String languageToLoad = "en"; // ltr language English
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
//layout direction
Bidi b = new Bidi(languageToLoad, Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
b.isLeftToRight();
//save current locale in SharedPreferences
SharedPreferences languagepref = getSharedPreferences("language",MODE_PRIVATE);
SharedPreferences.Editor editor = languagepref.edit();
editor.putString("languageToLoad",languageToLoad);
editor.commit();
startActivity(...);// refresh activity.
}
Вызов этих метод изменить направления RTL или LTR.
Счастливый кодирования ....
Вам не нужно менять направление EditText (или любой другой точки зрения) программно, Android сделать это для вас, когда вы указываете supportsRtl истинный. Вы, должно быть, что-то пропустили. –