Я установил языковые предпочтения в настройках моего приложения.Содержит ltr
||rtl
языки.когда для local установлено значение rtl
, например ar или fa , все мои действия вступят в силу и изменят как язык, так и направление компоновки, кроме той, в которой я использую одноэлементный класс внутриэто (это действие меняется на новый локальный, но направление макета не меняется).
public class FFmpeg{
private static final FFmpeg instance = new FFmpeg();
public static synchronized FFmpeg getInstance() {
return instance;
}
}
public boolean isCommandRunning(FFtask task) {
return null != task && !task.isProcessCompleted();
}
И все мои действия расширяют базовую деятельность:
public abstract class AppCompatThemeActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(changeLang(newBase, "fa"));
}
public static ContextWrapper changeLang(Context context, String lang_code) {
Configuration config = context.getResources().getConfiguration();
if (!"".equals(lang_code)) {
Locale locale = new Locale(lang_code);
Locale.setDefault(locale);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
config.setLocale(locale);
} else {
config.locale = locale;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
context = context.createConfigurationContext(config);
} else {
context.getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
}
}
return new ContextWrapper(context);
}
}
Почему это происходит?