大家可以先参考一下这边文章,先发开文章里面提到的overdraw功能,这样你可以看到屏幕的overdraw情况
http://hukai.me/android-performance-render/
由于我们公司奇葩的设计(有一个接近全屏的drawerlayout!!!内容还和drawerlayout下的内容一样!!!只是排版不用!!!),我们的app一直都十分的卡!!!
打开app一看,吓尿了,几乎整个屏幕都是红的!也就是overdraw的情况十分十分严重!!
原来即使是躲在drawerlayout底下,下面的内容仍然是会被绘制的。
尤其是在android 5.0新组件的运用下(虽然我还没用到),在多个layout叠加的情况下,可以通过将下层的layout.setvisibility(View.GONE)让它们暂时消失,等再次出现的时候再让他们visible。
另外,在红色海洋中,我发现一个神奇的现象——fragment并没有死去!
我们在layout中有一个fragment,每次都是调用fragmentManager.replace更换fragment
通过别人的文章发现,这样的话只是将新的fragment覆盖在旧fragment上面,点击新fragment的空白区域时甚至可以点到旧fragment的按钮。
正确的做法应该是在layout中使用framelayout,每次通过replace(R.id.framelayout_name,fragment)更新fragment
这样就能让旧fragment彻底消失。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-01 21:11:37