android – DataBinding可以干扰本地化活动吗?

TL; DR

我有一个支持多种语言的应用程序.尽管使用了所有常用的本地化方法,但仍未翻译一项活动.它是应用程序中唯一充分利用DataBinding的Activity.

完整的解释

我有一个使用DataBinding的Activity.所以基本上,该Activity的整个XML布局都包含在< layout>内.标签.这是我如何膨胀视图并获得绑定:

SomeActivityBinding binding = DataBindingUtil.setContentView(this,R.layout.some_activity);

XML中有许多TextView以这种方式设置文本:


android:text =“@ string /<字符串名称>”

我们为用户提供预定义语言选项并使用设置应用程序区域设置

Locale.setDefault(新的Locale(“< language name>”));

在英语区域,一切都很完美.

当应用程序处于不同的语言环境时,相关活动中的字符串仍然以英语显示 – 即使这些字符串已被翻译为相应的语言,并且位于相同的字符串文件中,其他应用程序抓取字符串来自.在该活动开始之前,应用程序很好 – 在活动开始后我退出它,应用程序恢复到英语语言环境,直到它被杀死并重新启动.如果从未打开该Activity,则app会按预期运行.

有谁知道可能导致这种情况的原因是什么?谢谢.

解决方法

弄清楚发生了什么.它与ViewBinding无关.该活动以横向模式启动 – 由于某种原因重置应用程序区域设置. This answer帮助我解决了这个问题.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...