View 的大小有两种:“视窗大小”和“内容大小”。
先举一个例子来说明吧:数学老师在黑板上画了一条直线。我们知道直线是无限长的,而我们在黑板上却只看见了它的一部分,老师也不可能把直线全部展示给我们看,因为黑板就只有那么大,除非黑板也是无限长的。
这里黑板就相当于一个View,我们的手机屏幕大小是有限的,因此我们在手机屏幕中我们看到的View最多也只有屏幕大小,就像老师在黑板上画一条直线,最多我们能看见的直线的部分就黑板那么长。而直线真正的长度是无限长的,同样一个View里面也能装下无限大的内容,这个我称之它为“内容大小”,它实际上是无限大的。而这个我们能看见的大小我称之它为“视窗大小”。就好像一扇窗户,这窗户放在哪个地方,我们就能看见哪个地方窗户后面的内容。通常我们操作View的大小都是操作它的“视窗大小”。一般View所放的内容跟它的“视窗大小”一样大,但有的组件里面所放的内容就比视窗大,比如说ScrollView,ListView等等。在自定义布局和自定义控制一定要明白这两个的区别,特别是在自定义一个可滚动的布局或者View中。