一、什么是View?
View是用户界面的组件。它负责描绘出一个矩形区域,并负责处理这个矩形区域同用户交互的所有事件。
二、View的使用
通常而言,我们使用View主要在4种情况。
a>设置View的相关属性(如设置TextView显示的文本,setText方法)。也就是说我们需要改变描绘的矩形区域(需要重新描绘)。
b>焦点相关。View是否可以获取焦点(setFocusable,requestFoucus),View是否可以通过手的触摸获取焦点(setFocusableInTouchMode)。主要是指几个views之间焦点的切换,获得焦点的view才能和用户进行事件的交互。
c>事件相关(如焦点切换、长按、点击、滑动)。主要是指在view的矩形区域同用于交互的各种事件。注意,事件相关有个前提,该view必须得到了焦点。
d>是否可见(setVisiable)。矩形区域是否让用户看得到。
三、View的拆分。
a>poisition
view的位置,距离俯视图边界的距离。注意,只有view真正显示出来才有数值。
b>size,padding和margin
size也是view的宽和高。注意,只有view真正显示出来才有数值,
padding是view内部矩形距离view边缘的距离。
margin是view边缘同父视图边缘的距离。
c>layout
对这一块不太懂。感觉实在说view内部的布局?
d>drawing
view内部矩形的描绘。如果需要view重绘,调用invalidate().
e>event handling
处理事件过程中,有以下几点需要特别注意。
1>在时间处理的方法中(如onClick事件),它是在UI Thread中。
2>如果在事件处理过程中,改变了layout,需要调用requestLayout()。
3>如果在事件处理过程中,改变了drawing,需要调用invalidate()。
f>focus handling
主要是本身是否允许(通过touch)获得焦点,焦点的切换和相邻的焦点(左右上下)。
g>animation
开始动画(如位置、大小、可见度、旋转)。
四、自定制view
如果需要自定制view,需要知道的事情。
a>View的定义。
b>至少View的layout,drawing,event handling这3个部分。