Android ConfigChanges属性详解

2020-08-05  本文已影响0人  夜沐下的星雨

ScrollView 使用遇见的一些问题(横竖屏的切换问题)

当我们写ScrollView (滚动查看) 使用竖屏是会正常显示,但是当我们进行横屏切换后
就会重新运行onCreate 方法 ,重新new Fragment 就会产生两个相似的布局 相互覆盖。使用configChanges="orientation|keyboardHidden|screenSize" 就可以不再产生相似布局,解决问题。
横竖屏的切换:

<activity android:name=".auth.login.pwd.AuthActivity"
android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" /
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

问题:系统语言改变后,activity会调用onDestory()重启,然后重启onCreate(),因此一些体验非常不好。
解决办法:在activity中配置:

        android:configChanges="locale|layoutDirection|keyboard"

至少在MIUI上面是没有问题了,但是对于这种配置,对于不同的ROM可能出出现不同的结果,还有以下奇怪的办法:

比如创建BaseActivity,在BaseActivity的onCreate中监听系统语言是否发生改变,然后通过eventBus去通知其他activity更换语言。


上一篇下一篇

猜你喜欢

热点阅读