我的应用需要重复模式的显示。想象棋盘可以在一个正方形内移动,但不能从一个正方形移动到另一个正方形。每个细胞都独立于其他细胞。每个单元格具有固定的大小。较大的显示器可容纳更多细胞。典型的屏幕可能有一个或两百个这样的单元格。
每个单元格可以是一个独立的Java对象,所以我最初想到它为单元格创建一个View
子类并将它们打包成ViewGroup
。另一方面,细胞不是真正玩Android布局游戏,因为它们具有固定的像素大小,并且不能增大或缩小它们的大小以适应不同的布局。从这个PoV中,制作一个可以绘制所有这些单元格的大View
是有意义的。然后,CellArray
视图可以随着布局引擎的请求而增长和缩小。
哪种方法看起来更自然?
答案 0 :(得分:3)
使用CellArray
。不是因为它“更自然”(我不确定这意味着什么),而是出于技术原因。 Android中的视图是非常重量级的对象,在您的活动中有几百个视图对于系统来说并不容易。 (如果Android lint rule for TooManyViews
检测到您的布局查看次数超过ANDROID_LINT_MAX_VIEW_COUNT
(默认为80),则会发出警告。您可以忽略lint警告,但它们通常是有充分理由的。)