这是一个创建于 2644 天前的主题,其中的信息可能已经有所发展或是发生改变。
最近在研究 andriod,之前毫无经验。
简单描述下这个问题的经过。。。
1. 我创建了两个 layout 文件,那么目前总共有三个 layout 文件,一个是 default 的也就是 activity_main.xml. 一个是 activity_main.xml ( sw400dp-land ), 还有一个是 activity_main.xml ( sw400dp-port ).
2. activity_main.xml ( sw400dp-port )和 activity_main.xml ( sw400dp-land )是用来显示当我用 Nexus 6 时候 app 的样子。
3. 在测试的时候, 我发现当我旋转 Nexus 6, 这些 layout 能正常切换。 但是呢当我如果在手机竖着的时候如果对 app 做了些改变 比如说在输入框输入了东西, 然后我把手机横过来, 我发现之前的更新丢失了。就是说我输入的东西没了。
4. 对于 3 中的问题,我研究了一下也在 V2EX 得到很好多人的帮助, 我用了 android:configChanges="orientation|screenSize|keyboardHidden" 去解决了这个状态丢失的问题。
5. 然而问题来了,如果我用了这个设置, 那么当我旋转手机后,layout 就不切换了。。。
不知道有没有别的解决方法。。。还请赐教
|
|
1
shockwave1 2017-07-28 07:22:34 +08:00 via iPhone
切换横竖屏,重绘 layout ,所以保持 activity 的状态
|
|
|
2
shily 2017-07-28 09:32:11 +08:00 via Android 2
android:configChanges 的意思是,我自己处理这些事件,系统不要管了。然而你也没有管理,所以就这个样子了。 正确的解法是使用 onSaveInstanceBundle
|
|
|
3
vjnjc 2017-07-28 14:10:42 +08:00
应该是 onSaveInstanceState ()方法里把你要存的 value 存下来,onRestoreInstanceState ()里面恢复。 不知道有么有更好用的方法。
|