我正在经历可怕的 TableLayout 性能。我在这里读过一些帖子谈论同样的事情......
我在已经很复杂的布局中使用表格布局。我已经使用了很多视图,当然我使用的视图越多,性能就越低,这是显而易见的,但我想知道与其他小部件相比,性能怎么可能如此糟糕。
在我的例子中,一个带有 5*5 文本视图(仅行中的纯文本视图)的表格布局会导致系统冻结甚至超过 1.5 秒,有时只需更新一个 TextView 。我不是在谈论渲染整个表格,而只是在表格布局中更新一个文本视图。
我怀疑 setColumnsStretchable(),但即使将其设置为从不拉伸,性能也是一样的。
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
final TextView target=(TextView)seekBar.getTag();
target.setText(""+progress);
}
这是我用来更新单元格的代码。如您所见,它是 SeekBar 侦听器的一部分。我什至不需要 findView() 或任何东西,因为我将目标文本视图存储为搜索栏的标签。
所以,移动搜索栏会导致跳跃:它需要超过一秒钟!单独做 setText() 。如果我更新不在表格内的任何其他文本视图,则更新是立即的,正如预期的那样。
如果我的桌子是 10*10,好吧,大概需要 3 秒!
根据您的经验,TableLayout 是禁忌还是我可能做错了什么?也许行或单元格布局参数的一些神奇值?
提前致谢。