当前位置:  开发笔记 > Android > 正文

更改方向,丢失所有列表项

如何解决《更改方向,丢失所有列表项》经验,为你挑选了3个好方法。

当我在Android设备上测试我的应用程序时,将我的Android手机从横向变为纵向,我的列表视图中的所有列表项的结果都消失了.

为什么?

怎么管理?



1> Janusz..:

您正在丢失列表项,因为在更改方向时android的默认行为是销毁您的活动并重新创建它.选择此行为是为了使android能够使用可能特别用于新方向的新布局重新创建活动.

为了防止列表项消失,有几件事需要完成.在方向改变期间有用的第一件事是在更改后简单地重复使用相同的活动.这可以通过添加此行来完成

android:configChanges="keyboardHidden|orientation"

到您的清单中的活动标签,您遇到了问题.这个问题在这个问题中有更详细的解释.

如果用户打开活动然后将您的应用程序发送到后台,那么您解释的行为可能也会出现,这会导致您的应用程序从内存中删除,然后重新访问您的应用程序.如果是这种情况,则必须覆盖活动中的onSaveInstanceState方法.在这个问题中解释了如何解决这个问题.


在Android的后续API版本中,这应该看起来像这样:`android:configChanges ="keyboardHidden | orientation | screenSize"`

2> molnarm..:

最简单的方法是使用onSaveInstanceState,在Janusz的答案中解释.

但是,如果列表中有许多项目,将它们保存到Bundlein中onSaveInstanceState可能会降低Activity娱乐过程的速度,用户会将其视为延迟.要保存比较大的数据,使用onRetainNonConfigurationInstance,然后在重新加载数据onCreategetLastNonConfugurationInstance.



3> 小智..:

尝试在您的活动中添加此内容:

机器人:configChanges = "方向|屏幕尺寸"

这个对我有用

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有