この奇妙な問題があり、理解できません。私は を持ってTableLayout
いTableRow's
ますonClickListener
。クリックしたときに tableRow を強調表示したい...最初にクリックしたときの応答が非常に遅いことを除いて、すべて問題ないようです。TableRow をクリックすると、TableRow を強調表示するのに約 8 秒かかりますが、最初は時間がかかります。他の行をクリックしてから、以前に強調表示された行に戻ると、応答は「即座に」です。テーブルには 30 行と 13 列が含まれていることに注意してください。少数の行と列に制限すると、応答時間が減少します。
2 回目のクリックではなく、最初のクリックに時間がかかるのはなぜですか?
これは私の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 メソッドで数ミリ秒を費やし、背景色を描画して表示するのに数秒かかります。