我有这个奇怪的问题,无法弄清楚。我有一个TableLayout
with TableRow's
,其中有onClickListener
. 我想在单击时突出显示 tableRow ...除了第一次单击时响应非常慢之外,一切似乎都很好。当我单击 TableRow 时,突出显示 TableRow 大约需要 8 秒,但第一次需要很长时间。当我单击其他行然后返回之前突出显示的行时,响应是“立即”。我应该提到该表包含 30 行和 13 列。当限制为几行和几列时,响应时间会减少。
为什么第一次点击需要这么多时间,而第二次点击却没有?
这是我的onClick
方法:
@Override
public void onClick(View v)
{
if (v instanceof TableRow){
long startTime = System.currentTimeMillis();
TableRow row = (TableRow) v;
if (selectedRow != null){
selectedRow.setBackgroundColor(Color.TRANSPARENT);
}
row.setBackgroundColor(getResources().getColor(R.color.selected_row));
selectedRow = row;
long estimatedTime = System.currentTimeMillis() - startTime;
Log.v(TEST_TAG, "Time elapsed when clicked:" + estimatedTime);
}
}
它在 OnClick 方法中花费几毫秒,并在几秒钟内绘制背景颜色以显示。