背景:

一个很旧的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. C#使用SendMessage进行进程间通讯

    最近公司有个需求是,拖动文件到桌面图标上,自动打开文件.那么只需在OnStartup事件中通过StartupEventArgs获取文件名然后进行操作即可.操作之后发现当软件已经启动了(单例运行),那么 ...

  2. ASP.NET Core中创建中间件的几种方式

    前言 今天我们一起来盘点一下在ASP.NET Core应用程序中添加和创建中间件常见的四种方式. 中间件介绍 ASP.NET Core中间件(Middleware)是用于处理HTTP请求和响应的组件, ...

  3. 转载 | ofd转pdf最好用的软件,ofd文件如何转化成pdf?

    1.背景 需要将ofd转换为pdf 2.使用方法 使用taurusxin 开发的软件Ofd2Pdf.exe即可实现,软件版权归原作者所有.这里表示感谢! 3.下载地址 官网:https://githu ...

  4. 解决方案 | 1分钟快速解决 win10 任务管理器性能不显示GPU?

    1 问题 环境:win10 22h2 2 解决方法 win+r输入dxdiag回车,查看下面信息: (1)确认你的Windows10版本号大于1909,如果确认,在任务管理器进程页右键名称一栏,将GP ...

  5. [oeasy]python0120_英语的崛起_英文字符_小写字母的由来_不列颠帝国

    各语言字符编码 回忆上次内容 罗马 承袭了 希腊的文化 学习了 希腊的字符   拥有 罗马帝国的战力 基督教文化的影响     ​   添加图片注释,不超过 140 字(可选)   这个时候 不列颠 ...

  6. [rCore学习笔记 010]基于 SBI 服务完成输出和关机

    RustSBI的两个职责 它会在计算机启动时进行它所负责的环境初始化工作,并将计算机控制权移交给内核 在内核运行时响应内核的请求为内核提供服务 这里用不太确切的话表述一下,RustSBI作为介于内核和 ...

  7. RESTful服务与swagger

    一开始刚学springboot的时候 restful服务+swagger一点都看不懂,现在知识学了一些,再回头看这些东西就简单很多了. 自己跟视频做了一个零件项目,里面写了一些零零散散的模块,其中在视 ...

  8. Jmeter函数助手21-evalVar

    evalVar函数用于执行变量表达式. 变量的名称:填入变量的名称name.注意不是引用变量${name} 1.evalVar函数和eval函数的区别:evalVar只能接收变量名称:eval能接收引 ...

  9. 【vue3】详解单向数据流,大家千万不用为了某某而某某了。

    总览 Vue3 的单向数据流 尽信官网,不如那啥. vue的版本一直在不断更新,内部实现方式也是不断的优化,官网也在不断更新. 既然一切皆在不停地发展,那么我们呢?等着官网更新还是有自己的思考? 我觉 ...

  10. 【Spring】06 Aop切面功能

    什么是Aop? Aspect Oriented Programming 面向切面编程 通过预编译的方式和运行期动态代理实现程序功能统一维护的一种技术 是OOP的延续,也是Spring第二个核心内容 可 ...