第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android 配置更改導(dǎo)致布局方向發(fā)生變化

Android 配置更改導(dǎo)致布局方向發(fā)生變化

胡子哥哥 2021-10-20 16:19:22
我有一些像 Note3 這樣的設(shè)備在縱向模式下設(shè)計的問題 當(dāng)我將應(yīng)用程序的語言更改為 RTL 時我同時支持 RTL 和 LTR 它工作正常但是當(dāng)我用相機(jī)拍照時設(shè)備旋轉(zhuǎn)并返回時對于應(yīng)用程序,應(yīng)用程序忽略定義的語言環(huán)境并使用英語的設(shè)備語言環(huán)境,應(yīng)用程序的方向更改為 LTR 但使用 RTL 的字符串,直到您導(dǎo)航到另一個屏幕,所有應(yīng)用程序都將變?yōu)?LTR,這僅在以下情況發(fā)生設(shè)備語言環(huán)境僅為英語。當(dāng)設(shè)備區(qū)域設(shè)置為阿拉伯語時,這不會發(fā)生。這是我的語言環(huán)境代碼public class MvpApp extends Application {AppDataManager dataManager;private Locale locale = null;private String language;@Overridepublic void onCreate() {    super.onCreate();    Fresco.initialize(this);    final Fabric fabric = new Fabric.Builder(this)            .kits(new Crashlytics())            .debuggable(true)            .build();    Fabric.with(fabric);    AppPreferencesHelper preferencesHelper = new AppPreferencesHelper(getApplicationContext());    ApiModule apiModule = new ApiModule(getApplicationContext());    dataManager = new AppDataManager(getApplicationContext(),            preferencesHelper, apiModule.provideApiService());    String lang = dataManager.getLanguage();    if (lang == null)        language = "en";    else language = lang;    LocaleHelper.setLocale(getApplicationContext(),language);}@Overridepublic void onConfigurationChanged(Configuration newConfig) {    super.onConfigurationChanged(newConfig);    if (locale != null) {        newConfig.locale = locale;        Locale.setDefault(locale);        newConfig.setLayoutDirection(locale);        getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());    }}public AppDataManager getDataManager() {    return dataManager;}
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個贊

我設(shè)法克服了這個問題,但在活動中覆蓋了 onConfigurationChanged 并在清單中添加了這一行


android:configChanges="orientation|screenSize|layoutDirection|locale"


@Override

public void onConfigurationChanged(Configuration newConfig) {

    super.onConfigurationChanged(newConfig);

    Locale locale = new Locale(presenter.getLanguage());

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

        newConfig.setLocale(locale);

        Locale.setDefault(locale);

        newConfig.setLayoutDirection(locale);

        this.createConfigurationContext(newConfig);

    } else {

        newConfig.locale = locale;

        Locale.setDefault(locale);

        newConfig.setLayoutDirection(locale);

        getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());

    }

}


查看完整回答
反對 回復(fù) 2021-10-20
  • 1 回答
  • 0 關(guān)注
  • 172 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號