当我在 EN 和 AR 之间切换我的应用程序语言时(在运行时), View 通过从 LTR 移动到 RTL 正常运行,但是当我开始通过切换语言多次强调应用程序时,布局方向变得困惑并且我得到 RTL当应用程序应该显示 LTR 元素时。有时布局方向不再刷新。
作为解决方法,我必须以编程方式为这些 View 设置布局方向。 binding.spinner.setLayoutDirection(LocaleUtil.isRtl(this) ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR);
你有什么想法吗?我试图避免这种解决方法:( 如果可以完全依赖 Android UI 渲染。
最佳答案
我无法想象用户会多次切换语言,然后在每次更改时返回到应用程序:)
但是,无论如何,如果 Android 无法正确地重新创建您的 Activity ,您始终可以通过在 AndroidManifest.xml 中设置 “android:configChanges” 来为您的 Activity ,然后在此类 Activity 中监听 onConfigurationChanged(Configuration newConfig) 方法:
在AndroidManifest.xml中:
<activity android:name=".MyActivity"
android:configChanges="layoutDirection">
在您设置android:configChanges的Activity中:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
// change directions for you views to RTL
} else {
// change directions for you views to LTR
}
}
关于Android - 多次切换 RTL 与 LTR 时布局方向错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41644936/