Android 自定义view 的绘制时机 问题
2015-06-03 18:40
387 查看
Android 自定义view 很多的开发者都用过,自定义view主要的是三个方法 onmeasure onlayout ondraw
先要测量子view的大小 然后会在layout中将view布置到相应的位置上去
根据官方的说法 自定义的view 会在需要的时候绘制 , 那么问题来了 什么时候是需要的时候?
比如 我在自定义了一个view 很简单 就是在linearlayout中动态添加四个textview 然后我在fragment中使用自己定义的这个view 我还要在自定义的view中设置一个状态 在view绘制完成之后 根据我传入的状态值 来给textview 添加不同的字体大小和颜色
那么问题来了 我应该在上面时候调用 这个setState方法 来设置状态 也就是说必须要在自定义的view 绘制完成之后 不然系统一定会抛出空指针异常
在oncreateview()中通过findbyid 找到自定义的view之后 直接设置 这个值可以吗?有兴趣的同学可以试一下 百分百空指针!
那么问题来了
自定义的view在被引用时 会在什么时候调用?
答案就是 在onResume方法中!
也就是 findbyid 并没有真正的去执行 onmeasure 等方法 因为按照官方的说法是 会在需要的时候绘制!
这个需要的时候 就是当view被显示出来的时候 这个时机对应的就是onResume()方法
以上就是今天要写的内容!下班走人!
先要测量子view的大小 然后会在layout中将view布置到相应的位置上去
根据官方的说法 自定义的view 会在需要的时候绘制 , 那么问题来了 什么时候是需要的时候?
比如 我在自定义了一个view 很简单 就是在linearlayout中动态添加四个textview 然后我在fragment中使用自己定义的这个view 我还要在自定义的view中设置一个状态 在view绘制完成之后 根据我传入的状态值 来给textview 添加不同的字体大小和颜色
那么问题来了 我应该在上面时候调用 这个setState方法 来设置状态 也就是说必须要在自定义的view 绘制完成之后 不然系统一定会抛出空指针异常
在oncreateview()中通过findbyid 找到自定义的view之后 直接设置 这个值可以吗?有兴趣的同学可以试一下 百分百空指针!
那么问题来了
自定义的view在被引用时 会在什么时候调用?
答案就是 在onResume方法中!
也就是 findbyid 并没有真正的去执行 onmeasure 等方法 因为按照官方的说法是 会在需要的时候绘制!
这个需要的时候 就是当view被显示出来的时候 这个时机对应的就是onResume()方法
以上就是今天要写的内容!下班走人!
相关文章推荐
- Android手机客户端与服务器之间的通信、Android手机客户端通过服务器与Android手机客户端之间的通信---------阿冬专栏!!!
- 浅析Android Camera开发中的三个尺寸和三种变形 (贡献一个自适配Picturesize和Previewsize的工具类)
- Android学习资源
- Android 强制横屏或竖屏注意事项及onConfigurationChanged的使用
- android px转换为dip/dp
- Android中的volley_5_字节数组缓冲池ByteArrayPool 和使用缓冲池技术的自定义的PoolingByteArrayOutputStream
- Android开发命名规范
- Android Handler的使用
- 控制android 编译源码生成odex .
- Android的ViewAnimator及其子类ViewSwitcher-android学习之旅(三十三)
- Android的ViewAnimator及其子类ViewSwitcher-android学习之旅(三十三)
- Android的ViewAnimator及其子类ViewSwitcher-android学习之旅(三十三)
- 引入第三方jar包,编译无错,运行出错。
- Android Studio怎样提示函数使用方法
- Android 上传中文到服务器时的乱码问题
- android中minLines和maxLines的区别
- Android init 进程 init.rc init.*.rc
- Android事件处理方法总结-Handler消息处理
- 设计模式学习--工厂模式(Factory Pattern)
- android生命周期