Android 首先单击TableRow-响应非常慢
我有一个奇怪的问题,无法解决。我有一个Android 首先单击TableRow-响应非常慢,android,performance,tablelayout,tablerow,Android,Performance,Tablelayout,Tablerow,我有一个奇怪的问题,无法解决。我有一个TableLayout和TableRow的,它有onClickListener。我想在单击时突出显示tableRow。。。除了第一次点击时反应非常慢外,其他一切似乎都很好。 当我单击TableRow时,高亮显示TableRow大约需要8秒钟,但仅仅是第一次就需要很长时间。当我点击到另一行,然后返回到之前高亮显示的行时,响应是“立即”。我应该提到,这个表包含30行13列。当限制为很少的行和列时,响应时间会缩短 为什么第一次点击要花这么多时间,而第二次点击却不花
TableLayout
和TableRow的
,它有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方法中花费了几毫秒,在绘制背景色以显示时花费了几秒钟。而没有显示您在该
OnClickListener中所做的事情。
没有人能真正帮助您。@Luksprog。。。我更新了我的答案。它真的必须是onDraw或类似的东西,我还不明白。它的行为就像在第二次单击时,整个视图来自某种缓存…您尝试过为这个函数做什么吗?@sandstar我会尝试一下。我是Android开发新手。。。所以谢谢你的提示。实际上,这是一个为可滚动屏幕创建的列表视图,其中有很多项是有效的。