公司使用的 ExpandAbleListView 现在有卡顿问题,从如下三点解决,
1、折叠,当折叠起来时候,getChildView 就不会执行。
2、隐藏,控件执行GONE。这里说一下,如果 notify 不管用的时候,使用 handler去做。所以可以 先GONE,等notify完成后,再VISIABLE
3、getGroupView 和 getChildView 中,holder 控件的资源设置,我遇到的是之前同事把对 holder的背景颜色,文字颜色,图片等效果都写在了 复用之外,这点会导致每次都会对控件设置资源。应该在 Holder创建之初 设置好资源。
如果你的Holder 有黑白版切换,改变资源使用,可以 设定一个 全局变量 isBlack 和 Holder变量 isBlack。然后比较两个值是否相等就可以了。通俗来说,TAG 1 用于记录当前系统黑白版,TAG 2记录当前Holder 黑白版,初始值 TAG 2 = TAG 1。当黑白版切换后,TAG 1肯定要变,这时候 在 getGroupView 和getChildView 中对 TAG1 == TAG 判断,然后确定是否重设资源。