读书人

004. Android界面刷新没调用OnMeasure

发布时间: 2012-07-20 10:38:30 作者: rapoo

004. Android界面刷新没有调用OnMeasure

最近写了一个android上chart和table控件,总结了几点关于自定义控件注意点。

1. onLayout 和 onMeasure必须重载。

2. 如果你无法判断自己的大小,在onMeasure的时候只需要调用super的onMeasure即可,同时还必须调用measureChildren。

?? 2.1 如果没有调用measureChildren,那么在界面刷新的时候就不能保证每个元素的rendering都是可预测的。

3. 重载onLayout不能改变view的hierachy,否则会陷入endless loop。不停的调用onLayout。

4. 响应用户的手势操作,可以通过调用layout方法,改变某个元素的位置。这样的好处是可以避免对整个控件的relayout。

?? 4.1 缺点是我们必须保存元素的位置,否则在下次必须全局layout的时候就丢失了当前元素的位置信息。因为layout方法不会将位置信息保存到layoutparam中。

1 楼 xiaojiaqiao 2011-09-01 能改变view的hierarchy,不过要调用的是addViewInLayout,removeViewInLayout等方法。

读书人网 >Android

热点推荐