得到view的信息以及 view绘制流程解析
来源:互联网 发布:无人机淘宝可靠吗 编辑:程序博客网 时间:2024/05/01 19:05
在oncreate函数
view.getheight是得不到正确高度的,因为view的信息还没计算出来
onstart()
onresume()
都不行
onpause()才可以得到
正确的方式
ViewTreeObserver viewTreeObserver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView=(TextView)findViewById(R.id.t);textView.setText("a"+"\n");viewTreeObserver=textView.getViewTreeObserver();viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {@SuppressWarnings("deprecation")@Overridepublic void onGlobalLayout() {// TODO Auto-generated method stubToast.makeText(MainActivity.this, Integer.toString(textView.getHeight()), 1).show();}});}
textView.getHeight()这段代码是核心,这个回调接口会在view的布局参数计算完后调用,这时候,参数更新 textView.getHeight()被接口调用,所以可以拿到值
其中,toast会显示两次,因为回调接口在view调用了两次
这个方法写在oncreate,其实运行并不是在oncreate,应该是在onresume,就是计算与绘制阶段,因为必须是在onmeasure后面
onresume() 系统回调view的ondraw()
ondraw之前有一个onmeasure()
这个方法在onmearsure后运行,直接取得结果
所以,代码是在oncreate,但是通过回调机制,实际是在onresume()
0 0
- 得到view的信息以及 view绘制流程解析
- 得到view的信息以及 view绘制流程解析(二)
- Android中View的绘制流程解析
- Android中View的绘制流程以及View的优化
- view的绘制流程
- View 的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- view的绘制流程
- View的绘制流程
- View 的绘制流程
- View的绘制流程
- View 的绘制流程
- View的绘制流程
- Selection sort 选择排序
- PHP调试网页出现乱码解决方法!
- OpenCV视频进度播放控制
- opengl学习笔记(2)
- pl_sql
- 得到view的信息以及 view绘制流程解析
- JAVA高并发学习笔记(四) 无锁
- check tech
- 高效编程
- Cocos2d-x中使用Socket方法总结
- sql_answer
- sql_question
- 第一篇博客
- 20150909,微软9月9日发布12个安全补丁