首页
JAVA笔记
数据库笔记
混乱记忆
小站记
您现在的位置
android 自定义控件基础(常用布局控件重写了哪些方法)
简介: 整理常用布局控件重写了哪些方法,为自定义控件的编写打基础。

看着别人的app 中各种特色控件十分诱人,为了研究写出自己想要的控件特研究常用的Layout对象,并进行了总结。

layout -> setFrame
       -> onLayout
       -> OnLayoutChangeListener

 

容器类大多重写一下方法重写
onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo)
onInitializeAccessibilityEvent(AccessibilityEvent)
checkLayoutParams(LayoutParams)
generateLayoutParams(LayoutParams)
generateDefaultLayoutParams()
generateLayoutParams(AttributeSet)
onLayout(boolean, int, int, int, int)
onMeasure(int, int)
getBaseline()  //基线对齐时会用到
shouldDelayChildPressedState()   //判断是否可以延迟事件,在ListView控件中用来处理是滑动还是单击item中的button


LinearLayout
onDraw(Canvas)

RelativeLayout
requestLayout()

FrameLayout
verifyDrawable(Drawable)
jumpDrawablesToCurrentState()
drawableStateChanged()
onSizeChanged(int, int, int, int)
draw(Canvas)
gatherTransparentRegion(Region)

AbsoluteLayout
没有重写
getBaseline()
onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo)
onInitializeAccessibilityEvent(AccessibilityEvent)

GridLayout
requestLayout()
没有重写
getBaseline()
shouldDelayChildPressedState

 

看上去好像也没什么复杂的,主要复杂点应该是在与 onLayout 方法的实现