水平

如何在横竖屏切换时Activity内容不变

笑着哭i 提交于 2019-12-17 00:51:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 众所周知,默认情况下,从水平变为垂直,Android的操作过程为关闭Activity,再在当前方向打开此Activity。此过程一般而言没有什么不妥,只是会带来一个问题:用户数据丢失,也就是说,Activity 重启,必然使得内容初始化。补救措施是在变换方向时保存当前内容,如webview的url等。 这种做法当然不够好玩。 正确的做法是,配置Activity的变化状态(这么说可能不大准确。),在AndroidManifest.xml中,对于每一个Activity的配置,有一个属性,android:configChanges=""。这个属性的官方解释是 通过 设置 这个属性可以使Activity捕捉设备状态变化,以下是可以被识别的内容: CONFIG_FONT_SCALE CONFIG_MCC CONFIG_MNC CONFIG_LOCALE CONFIG_TOUCHSCREEN CONFIG_KEYBOARD CONFIG_NAVIGATION CONFIG_ORIENTATION 那么,如下配置则可以完成我们想要的结果: 补充: 每一个config的具体说明: Value Description “ mcc “ The IMSI mobile country code (MCC) has changed —