在网易遇到的一个面试题,关于下拉刷新的
问题是:
你实现下拉刷新的时候,会在ListView的头部显示一个刷新的提示,这个提示是一个View对象,那么问题来了,这个View是怎么弹出来的?即这个View怎么实现随着你的手指下拉,而显示出来?
我回答的是:
用不停更改View的属性即LayoutParams这种方式实现的。可以更改控件的高度,也可以修改Margin属性实现。
面试人说:
这样做是可以实现效果,但这样做事效率最低的,更改属性会引起界面重绘什么的。
那么问题是:
还有什么其他方式可以实现这样的效果吗?怎么实现,才能使ViewTree不会重新onMeasure,onLayout,有大神知道么?
照我的理解,这个提示的View出现的方式本身是一种动画效果,即使不需要重新onMeasure,但是他的出现肯定改变了ListView里面的元素的位置,即onLayout肯定会被执行的吧。
已我的理解,只有在Scorll滚动View的时候,才不会触发onMeasure,和onLayout,而只会执行performDraw方法。
我们的问题是:挖掘机技术哪家强?