一个大视图或一组较小的视图

时间:2014-09-23 23:54:55

标签: android performance

我的应用需要重复模式的显示。想象棋盘可以在一个正方形内移动,但不能从一个正方形移动到另一个正方形。每个细胞都独立于其他细胞。每个单元格具有固定的大小。较大的显示器可容纳更多细胞。典型的屏幕可能有一个或两百个这样的单元格。

每个单元格可以是一个独立的Java对象,所以我最初想到它为单元格创建一个View子类并将它们打包成ViewGroup。另一方面,细胞不是真正玩Android布局游戏,因为它们具有固定的像素大小,并且不能增大或缩小它们的大小以适应不同的布局。从这个PoV中,制作一个可以绘制所有这些单元格的大View是有意义的。然后,CellArray视图可以随着布局引擎的请求而增长和缩小。

哪种方法看起来更自然?

1 个答案:

答案 0 :(得分:3)

使用CellArray。不是因为它“更自然”(我不确定这意味着什么),而是出于技术原因。 Android中的视图是非常重量级的对象,在您的活动中有几百个视图对于系统来说并不容易。 (如果Android lint rule for TooManyViews检测到您的布局查看次数超过ANDROID_LINT_MAX_VIEW_COUNT(默认为80),则会发出警告。您可以忽略lint警告,但它们通常是有充分理由的。)