MultiLanguages icon indicating copy to clipboard operation
MultiLanguages copied to clipboard

[Bug]:在系统设置中切换语言无效

Open xyj155 opened this issue 1 year ago • 26 comments

框架版本【必填】

9.3

问题描述【必填】

我在切换语言的时候,app的语言还是默认的语言,无法切换到其他的语言

复现步骤【必填】

点击语言列表,切换以后重新进入app,语言未改变

是否必现【必填】

项目 targetSdkVersion【必填】

34

出现问题的手机信息【必填】

小米10

出现问题的安卓版本【必填】

13

问题信息的来源渠道【必填】

自己遇到的

是部分机型还是所有机型都会出现【必答】

小米手机

框架最新的版本是否存在这个问题【必答】

框架文档是否提及了该问题【必答】

是否已经查阅框架文档但还未能解决的【必答】

issue 列表中是否有人曾提过类似的问题【必答】

是否已经搜索过了 issue 列表但还未能解决的【必答】

是否可以通过 Demo 来复现该问题【必答】

提供报错堆栈

No response

提供截图或视频

No response

提供解决方案

No response

xyj155 avatar Feb 17 '24 02:02 xyj155

小伙子,你是适配了 Android 13 locales_config.xml 特性对吧?

getActivity avatar Feb 17 '24 04:02 getActivity

issues/37

getActivity avatar Feb 17 '24 04:02 getActivity

解决方案不使用这一特性,具体的原因上面的 issue 有介绍

getActivity avatar Feb 17 '24 04:02 getActivity

这个我不知道诶,我不知道是不是系统默认配置的。我现在一直是默认语言,哪怕切换了系统的语言都无效了

---Original--- From: @.> Date: Sat, Feb 17, 2024 12:13 PM To: @.>; Cc: @.@.>; Subject: Re: [getActivity/MultiLanguages] [Bug]: (Issue #41)

小伙子,你是适配了 Android 13 locales_config.xml 特性对吧?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

xyj155 avatar Feb 17 '24 04:02 xyj155

那你的问题应该是切换系统语种,但是切换到 App 语言没有任何变化对吧?

getActivity avatar Feb 17 '24 04:02 getActivity

对的,我没有用到这个属性

---原始邮件--- 发件人: @.> 发送时间: 2024年2月17日(周六) 中午12:17 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41)

那你的问题应该是切换系统语种,但是切换到 App 语言没有任何变化对吧?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

xyj155 avatar Feb 17 '24 04:02 xyj155

image

getActivity avatar Feb 17 '24 04:02 getActivity

还是没有效果

---原始邮件--- 发件人: @.> 发送时间: 2024年2月17日(周六) 中午12:23 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41)

image.png (view on web) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

xyj155 avatar Feb 17 '24 04:02 xyj155

你当前设置的语言是什么?跟随系统?还是某个特定语种?

getActivity avatar Feb 17 '24 04:02 getActivity

是APP里面设置好的语言,跟随用户设置

---原始邮件--- 发件人: @.> 发送时间: 2024年2月17日(周六) 中午12:32 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41)

你当前设置的语言是什么?跟随系统?还是某个特定语种?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

xyj155 avatar Feb 17 '24 04:02 xyj155

https://github.com/getActivity/MultiLanguages/assets/28616817/314cb964-5eda-4ecf-a5bc-9632b7336ef9

getActivity avatar Feb 17 '24 08:02 getActivity

image

getActivity avatar Feb 17 '24 08:02 getActivity

小伙子,我经过验证,是可行的。

getActivity avatar Feb 17 '24 08:02 getActivity

找到问题了,还需要在baseactivity里面再配置onConfigurationChanged,否则就无效

xyj155 avatar Feb 17 '24 11:02 xyj155

@xyj155 小伙子,我测试了,只要你在监听到系统语种的时候,手动调用每个 activity.recreate 方法,那么无论这个 Activity 在 AndroidManifest.xmlandroid:configChanges 的属性值是多少,都会重新创建界面,你之所以没有生效没有按照我的意思去做,也就是没有去调用 activity.recreate 方法。

getActivity avatar Feb 17 '24 12:02 getActivity

Recreate我做了,也不行,不过感谢大佬教我

---原始邮件--- 发件人: @.> 发送时间: 2024年2月17日(周六) 晚上8:55 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41)

@xyj155 小伙子,我测试了,只要你在监听到系统语种的时候,手动调用每个 activity.recreate 方法,那么无论这个 Activity 在 AndroidManifest.xml 在 android:configChanges 的属性值是多少,都会重新创建界面,你之所以没有生效没有按照我的意思去做,也就是没有去调用 activity.recreate 方法。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

xyj155 avatar Feb 17 '24 12:02 xyj155

@xyj155 那为什么不行呢?是哪种情况?

  1. 写了调用 recreate 代码,但是实际上没有调用到
  2. 调用了 recreate 方法,但是 activity 实际没有重启
  3. 调用了 recreate 方法,activity 也重启了,但是界面仍然用的是旧语种构建的

getActivity avatar Feb 17 '24 13:02 getActivity

我目前加上了加载配置以后就好了,估计就是语言配置没有加载进去

---原始邮件--- 发件人: @.> 发送时间: 2024年2月17日(周六) 晚上9:06 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41)

@xyj155 那为什么不行呢?是哪种情况?

写了调用 recreate 代码,但是实际上没有调用到

调用了 recreate 方法,但是 activity 实际没有重启

调用了 recreate 方法,activity 也重启了,但是界面仍然用的是旧语种构建的

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

xyj155 avatar Feb 17 '24 13:02 xyj155

@xyj155 小伙子,知道你在干啥么?我问你 A,你却回答我 B

getActivity avatar Feb 17 '24 13:02 getActivity

大哥,我错了,但是你这个方法我用过,不生效啊

---原始邮件--- 发件人: @.> 发送时间: 2024年2月17日(周六) 晚上9:54 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41)

@xyj155 小伙子,知道你在干啥么?我问你 A,你却回答我 B

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

xyj155 avatar Feb 17 '24 13:02 xyj155

大哥,我错了,但是你这个方法我用过,不生效啊 ---原始邮件--- 发件人: @.> 发送时间: 2024年2月17日(周六) 晚上9:54 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41) @xyj155 小伙子,知道你在干啥么?我问你 A,你却回答我 B — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

@xyj155 小伙子,你这句话之前说过了,但是我现在很想知道为什么我的方法没有生效,过程是什么出现了问题?

getActivity avatar Feb 17 '24 14:02 getActivity

我打印了一下日志,你那个recreate只是重新加载了配置,简单刷新一下页面,但是实际上,资源文件没有读进去

---原始邮件--- 发件人: @.> 发送时间: 2024年2月17日(周六) 晚上10:35 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41)

大哥,我错了,但是你这个方法我用过,不生效啊 … ---原始邮件--- 发件人: @.> 发送时间: 2024年2月17日(周六) 晚上9:54 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41) @xyj155 小伙子,知道你在干啥么?我问你 A,你却回答我 B — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

@xyj155 小伙子,你这句话之前说过了,但是我现在很想知道为什么我的方法没有生效,过程是什么出现了问题?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

xyj155 avatar Feb 17 '24 14:02 xyj155

@xyj155 不会吧?调用 recreate 方法不是会重新走 Activity 生命周期?你的布局文件在 onCreate 方法中加载的,理所应当布局也会重新加载的。

getActivity avatar Feb 18 '24 03:02 getActivity

我是安卓34,按你的道理是会重新加载,但是他实际上不会

---原始邮件--- 发件人: @.> 发送时间: 2024年2月18日(周日) 中午11:19 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41)

@xyj155 不会吧?调用 recreate 方法不是会重新走 Activity 生命周期?你的布局文件在 onCreate 方法中加载的,理所应当布局也会重新加载的。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

xyj155 avatar Feb 18 '24 03:02 xyj155

@xyj155 为什么不会呢?原因是什么?小伙子我手头不能复现这个问题,你给看看是什么原因导致的?

getActivity avatar Feb 18 '24 03:02 getActivity

我加你微信吧,这样子沟通效率太低了

---原始邮件--- 发件人: @.> 发送时间: 2024年2月18日(周日) 中午11:53 收件人: @.>; 抄送: @.@.>; 主题: Re: [getActivity/MultiLanguages] [Bug]:在系统设置中切换语言无效 (Issue #41)

@xyj155 为什么不会呢?原因是什么?小伙子我手头不能复现这个问题,你给看看是什么原因导致的?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

xyj155 avatar Feb 18 '24 04:02 xyj155

解决了吗

buhuiming avatar Mar 07 '24 10:03 buhuiming

@buhuiming 没有,小伙子你可以继续在这个 issue 下讨论,我依然会解答你的问题

getActivity avatar Mar 07 '24 11:03 getActivity

你好.请教一下 2调用了 recreate 方法,但是 activity 实际没有重启. 这是为啥 我直接调用actvitiy.recreate()或者 contextCompat.ecreate()都没办法让activity 重启 所有手机都这样,包括模拟器

LinX1874 avatar Mar 28 '24 15:03 LinX1874

@LinX1874 小伙子,我这边没有办法复现,麻烦提供一个可供复现的 Demo 工程给我。

getActivity avatar Mar 28 '24 16:03 getActivity