背景:

一个很旧的Android项目,android升androidx

切换语系失败,debug的时候,传的语系值是对的,但是确实没有国际化效果

原因:

经过一番学习,原因是使用 implementation 'androidx.appcompat:appcompat:1.0.2'

原本Android的写法不适用于Androidx,调整后的代码,指定语系可以切换,但是跟随系统语系一直不生效

又调整了获取当前设备默认Local的方法

方案:

Application和BaseActivity中添加:

    @Override
protected void attachBaseContext(Context newBase) {
Resources resources = newBase.getResources();
Configuration configuration = resources.getConfiguration();
Locale targetLocale = getSetLanguageLocale(newBase);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
LocaleList localeList = new LocaleList(targetLocale);
LocaleList.setDefault(localeList);
configuration.setLocales(localeList);
} else {
configuration.setLocale(targetLocale);
}
Context targetContext = newBase.createConfigurationContext(configuration);
final ContextThemeWrapper wrappedContext = new ContextThemeWrapper(targetContext, R.style.Theme_AppCompat_Empty) {
@Override
public void applyOverrideConfiguration(Configuration overrideConfiguration) {
if (overrideConfiguration != null) {
overrideConfiguration.setTo(configuration);
}
super.applyOverrideConfiguration(overrideConfiguration);
}
};
super.attachBaseContext(wrappedContext);
}

 其中为默认语系时,Local为:

Resources.getSystem().getConfiguration().locale

  



Android升 Androidx 语系切换失效的更多相关文章

  1. Android的Activity屏幕切换动画(一)-左右滑动切换

    (国内知名Android开发论坛eoe开发者社区推荐:http://www.eoeandroid.com/) Android的Activity屏幕切换动画(一)-左右滑动切换 在Android开发过程 ...

  2. Android横屏竖屏切换的问题

    Android横屏竖屏切换的问题 http://blog.sina.com.cn/s/blog_77c632410101790w.html

  3. Android——例子:屏幕切换

    效果图如下:                          Xml文件代码: <?xml version="1.0" encoding="utf-8" ...

  4. Android 中Activity生命周期分析:Android中横竖屏切换时的生命周期过程

    最近在面试Android,今天出了一个这样的题目,即如题: 我当时以为生命周期是这样的: onCreate --> onStart -- ---> onResume ---> onP ...

  5. Android的横竖屏切换

    android的横竖屏切换,也会发生不少问题. 1. 锁定屏幕方向,禁止切换: 在AndroidManifest.xml中的Activity参数中加上   android:screenOrientat ...

  6. 实现了在android实现左右滑动切换界面的效果

    这是实现了在android实现左右滑动切换界面的效果,该效果的源码下载,请到源码天堂下载吧,喜欢的朋友可以研究一下. 布局文件 <?xml version="1.0" enc ...

  7. [Android Pro] AndroidX了解一下

    cp : https://blog.csdn.net/qq_17766199/article/details/81433706 1.说明 官方原文如下: We hope the division be ...

  8. Android ToggleButton:状态切换的Button

     Android ToggleButton:状态切换的Button Android ToggleButton和Android Button类似,但是ToggleButton提供了一种选择机制,可以 ...

  9. Spring动态切换多数据源事务开启后,动态数据源切换失效解决方案

    关于某操作中开启事务后,动态切换数据源机制失效的问题,暂时想到一个取巧的方法,在Spring声明式事务配置中,可对不改变数据库数据的方法采用不支持事务的配置,如下: 对单纯查询数据的操作设置为不支持事 ...

  10. Android屏幕横竖屏切换和生命周期管理的详细总结

    一般的我们去切换屏幕方向都是不希望Activity被重新创建,这时就需要对一些属性进行设置,或者使用代码设置.        今天想学一下Android屏幕横竖屏切换,但是网上很多知识不准确或不正确, ...

随机推荐

  1. 没想你是这样的AI。。。

  2. java springboot监听事件和处理事件

    在Spring Boot中,监听和处理事件是一种常用的模式,用于在应用程序的不同部分之间传递信息.Spring 的事件发布/订阅模型允许我们创建自定义事件,并在这些事件发生时由注册的监听器进行处理.这 ...

  3. DeepViT:字节提出深层ViT的训练策略 | 2021 arxiv

    作者发现深层ViT出现的注意力崩溃问题,提出了新颖的Re-attention机制来解决,计算量和内存开销都很少,在增加ViT深度时能够保持性能不断提高 来源:晓飞的算法工程笔记 公众号 论文: Dee ...

  4. P1681

    和上一道题差不多,要注意一些细节 #include<iostream> #include<utility> using namespace std; typedef long ...

  5. tp6 uniapp跨越问题

    自己写一个简单的中间件

  6. 第二章 编译FFmpeg并开启H.264编码

    目录 前言 1. 下载x264 2. 编译x264 3. 编译FFmpeg 3.1 可能出现的问题和解决方法 3.1.1 ERROR: x264 not found using pkg-config ...

  7. centos7 最小化安装yum不能安装软件解决方案

    慕课网神思者老师课常资料带的布署工具中,自带的liunx 系统centos7 yum发现不能安装软件,比如docker   解决方案 首先我们安装好虚拟机启动系统centos7 尝试安装任何软件都会报 ...

  8. scratch编程作品-《滚动的物理小球》

    程序说明: <滚动的物理小球>是一款基于Scratch平台开发的小游戏.在这个游戏中,玩家通过按左右方向键来控制一个小球在屏幕上的左右移动.小球在移动过程中,完全遵循物理引擎的规则,如加速 ...

  9. 【WPF】Command 的一些使用方案

    Command,即命令,具体而言,指的是实现了 ICommand 接口的对象.此接口要求实现者包含这些成员: 1.CanExecute 方法:确定该命令是否可以执行,若可,返回 true:若不可,返回 ...

  10. uniapp生成的app怎么上架到iphone的app store

    首先这里需要强调的是,上架app store,必须用自己公司的账号的证书打包,不能使用别的公司的证书打包,因为假如使用别人的证书打包,打包出来的app,只能上传到别人的app store账号,你开发的 ...