我遇到了糟糕的TableLayout性能。我在这里读了一些关于同样的帖子......
Android dynamically created table - bad performance
我在已经很复杂的布局中使用了tablelayout。我已经使用了很多视图,当然我使用的视图越多,性能越低,这是显而易见的,但我想知道与其他小部件相比,性能是如何可能的那样糟糕。
在我的情况下,一个表格布局,假设5 * 5文本视图(行中只有纯文本视图)导致系统冻结的时间超过1.5秒,有时只需更新TextView。我不是在谈论渲染整个表,而只是在tablelayout中更新一个textview。
我怀疑是setColumnsStretchable(),但即使将其设置为永不拉伸,性能也是一样的。
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
final TextView target=(TextView)seekBar.getTag();
target.setText(""+progress);
}
这是我用来更新单元格的代码。如您所见,它是SeekBar监听器的一部分。我甚至不需要findView()或任何东西,因为我将目标textview存储为seekbar的标签。
因此,移动搜索栏会导致跳跃:需要超过一秒钟!单独执行setText()。如果我更新不在表格内的任何其他文本视图,则会立即按预期更新。
如果我的桌子是10 * 10,那么它需要3秒钟!
您的体验TableLayout是否禁止,或者我可能做错了什么?行或单元layoutparams可能有一些神奇的值吗?
提前致谢。