一 View ,ViewGroup的绘制过程
ViewGroup绘制包括两个步骤:1.measure 2.layout
在两个步骤中分别调用回调函数:1.onMeasure() 2.onLayout()
1.onMeasure() 在这个函数中,ViewGroup会接受childView的请求的大小,然后通过childView的measure(newWidthMeasureSpec, heightMeasureSpec)函数存储到childView中,以便childView的getMeasuredWidth() andgetMeasuredHeight() 的值可以被后续工作得到。
2.onLayout() 在这个函数中,ViewGroup会拿到childView的getMeasuredWidth() andgetMeasuredHeight(),用来布局所有的childView。
3.View.MeasureSpec与 LayoutParams 这两个类,是ViewGroup与childView协商大小用的。其中,View.MeasureSpec是ViewGroup用来部署childView用的, LayoutParams是childView告诉ViewGroup 我需要多大的地方。
4.在View 的onMeasure的最后要调用setMeasuredDimension()这个方法存储View的大小,这个方法决定了当前View的大小。
具体详见android官方文档 dev guide->User Interface->How Android Draws Views
二 View,ViewGroup的手势监听顺序与使用
View的手势监听相关回调函数:onTouchEvent()
ViewGroup的手势监听相关回调函数:onTouchEvent(),onInterceptTouchEvent()
1.这两个回调函数都会返回一个boolean变量,表示是否消费了此手势。如果消费了,返回true,如果未消费,返回false。
2.当用户触摸一下屏幕,产生手势MotionEvent,
ViewGroup的onInterceptTouchEvent()会接受此MotionEvent。
如果此回调函数返回true,则表示此ViewGroup消费了此手势,不想再让他的childView去处理,childView的onTouchEvent()便不会再接受此手势,同时此ViewGroup的onTouchEvent()会接受此手势。
如果此回调函数返回false,则表示此ViewGroup未消费了此手势,想让他的childView去处理,childView的onTouchEvent()接受此手势,同时此ViewGroup的onTouchEvent()不会接受此手势。
3.onTouchEvent()的返回值指的是向上传递event,onInterceptTouchEvent()的返回值指的是向下传递event
分享到:
相关推荐
这是android viewgroup view 源码,有一些注释,此源码仅供学习使用。
本资源提供对于ViewGroup下所以子view的遍历,以及调用Views都过tag或者Widget的类查找返回一个List<View> 使用方法可见示例: 子View遍历 ViewGroup root = (ViewGroup) findViewById(android.R.id.content); ...
Android实现的ViewGroup双向滑动界面效果,这在当下的各种android客户端应用中使用广泛,操作也是比较顺手的一种方式,本滑动界面中设置右滑的菜单View、设置主界面View、并设置了菜单和内容边界,定义好这些为下...
在Android中,视图控件大致被分为两类,即ViewGroup和View,ViewGroup控件作为父控件,包含并管理着子View,通过ViewGroup和View便形成了控件树,各个ViewGoup对象和View对象就是控件树中的节点。在控件树中,以树的...
使用ShapeInject,可能很方便给View和ViewGroup设置背景,不用再写selector文件啦
android触屏事件之activity,view,viewgroup
主要为大家详细介绍了Android自定义viewgroup可滚动布局,GestureDetector手势监听,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android 标签,可以自动换行的ViewGroup
本篇文章主要介绍了Android中使用自定义ViewGroup的总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
可自动换行效果的viewgroup,支持一键多选,单选,绝对是多标签选择的不二选择
Android不同层次的触摸事件监听 APP开发中,经常会遇到有关手势处理的操作,... Activity层手势监听的使用场景:一般用于当前页面中没有过多的手势需要处理的时候,至多存在点击事件。对于右滑返回上层界面这种需
这回我们是深入到ViewGroup内部\,了解ViewGroup的工作,同时会阐述更多有关于View的相关知识。以便为以后能灵活的使用自定义空间打更近一步的基础。希望有志同道合的朋友一起来探讨,深入Android内部,深入理解...
博客配套说明:http://blog.csdn.net/xiaohao0724/article/details/54798908
创建定制的ViewGroup以及理解Android绘制视图的方式
自定义View和viewGroup
android中继承ViewGroup用法 android中继承ViewGroup用法 android中继承ViewGroup用法
自定义ViewGroup(高度不同的列表) MIT License Copyright (c) 2017 JiaoZhengXiang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated ...