List/Grid的初次布局是由渲染器根据宽高尺寸和显示内容的实际大小计算完成的。
在宽高不变的前提下,滚动条滚动也会更改UI布局(行位置的调整),但此时的UI布局变化不需要渲染器,而是组件内部控制的。
这样,【布局】这个功能将分散在组件本体和渲染器两处。
对于UI的显示控制,如果不加以规则限制,则代码看起来会分工不明确。
代码严谨的结构性受到影响。
*当然,任何事情都有特例,结构也需要在特例情况下做出特殊对待。
但是,保持结构的统一,无疑也是非常重要的。
如何定义,如何设计,如何选择,需要智慧
==========================================================
>>List
规则 : 在给定宽高的区域内(ContentObject.scrollRect <-- 称其为Rect),纵向无缝紧密排列项目
滚动条显示条件: 单个项目高度 * 项目个数 > Rect.height
>>Grid
规则 : 行(Row): 在给定宽高的区域内(ContentObject.scrollRect <-- 称其为Rect),纵向无缝紧密排列项目
行内项目 : 在行内,根据项目被指定的宽度,横向无缝紧密排列
滚动条显示条件: 横向: 行宽度 > Rect.width
横向: 行高度 * 行总数 > Rect.height