我仍然是Android新手所以我可能没有必要的布局专业知识来确保我不创建不必要的视图节点。目前我的主要XML布局是巨大的(大约770行),因此加载太多(大约2秒,这使得它感觉没有响应)。
我了解了inflate命令,它可以解析XML并返回一个View,所以我想我可以在启动画面中使用AssyncTask缓存这些视图,并在主活动的onCreate()中使用它。
这可能解决问题吗?还有其他我应该研究的事情吗?我目前已经意识到内存泄漏的可能性,所以我会留意这一点。
编辑:我尝试过预膨胀但我似乎没有达到性能提升。
LayoutInflater inflater = LayoutInflater.from(this);
View layout = inflater.inflate(R.layout.question, null, false);
然后在另一项活动中,过了一会儿:
setContentView(layout);
但仍然需要2秒才能打开。我错过了什么吗?是否预先膨胀我正在做的事情真的不应该有任何改善吗?
答案 0 :(得分:0)
是的,您可以使用LayoutInflater
课程“预充气”您的观看次数。但是,我建议您使用Hierarchy Viewer工具评估您的布局效果,以确定出错的地方。 Romain Guy有几个关于如何使用此工具的视频。您还可以使用Lint给出的提示(已替换旧的layoutopt工具)来优化布局。有关此问题的详细信息为here。