介绍
在开发过程中,需求中经常会遇到某几个控件组合到一起使用的UI,并且出现的频率很高,这个时候如果不进行封装的话,布局文件会出现大量重复的代码,显得很长很冗余,并且在Activity中也会多出很多findView的代码,这样的代码看着就不爽,而且我们写的时候也很腻歪,完全是无意思的重复。这个时候就需要用到封装,即自定义View,这个自定义View一般是不需要我们进行重写onMeasure(),onDraw(),onLayout()等方法的,只是根据需求将现有的View控件机型组合在一起,得到一个组合View控件,这样在布局文件中只需要写入这个组合View就能达到之前一大片View的效果。
要点总结
关于LayoutParams
-
给View设置LayoutParams时,要注意这个View要添加到父布局是什么Layout。
在RelativeLayout中添加View,要使用RelativeLayout的LayoutParams设置View的LayoutParams参数;LinearLayout中添加View要使用LinearLayout的LayoutParmas......
-
给View设置Margin与Pading属性
通过LayoutParams
setMargin(int left,int top,int right,int bottom)
设置View的各个方向的Margin。
设置Pading要利用View的方法
setPading(int left,int top,int right,int bottom)
PS:margin属性值得大小是不计算在View的width与height中的;pading属性值是要计算在width与height中的(即设置了pading值后,表面View的展示区域变小,但是实际上View本身绘制的区域是包含pading的范围的)
网友评论