0

この奇妙な問題があり、理解できません。私は を持ってTableLayoutTableRow'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 メソッドで数ミリ秒を費やし、背景色を描画して表示するのに数秒かかります。

4

0 に答える 0