私は117
TableRows
に追加したいTableLayout
に追加したいのですが、問題は遅くなりますActivity
発売?私はTableRow
をバックグラウンドで作成しようとしましたが、次にpublishProgress
行のチャンクがあるので、同時にすべての行を追加しても問題は発生しないかもしれませんが、まだ起動時にがあります。私がこれまで行ってきたことは、次のとおりです。Tablelayout addViewが遅くなるアプリケーション
感謝を遅くしないようにTableLayout addViewのパフォーマンスを向上させる方法
private class AsyncTaskLoadData extends AsyncTask<Void, CopyOnWriteArrayList<TableRow>, ArrayList<TableRow>> {
protected void onPreExecute() {
showProgressDialog();
tableLayout.setVisibility(View.GONE);
}
@Override
protected void onProgressUpdate(CopyOnWriteArrayList<TableRow>... values) {
super.onProgressUpdate(values);
for (TableRow tr : values[0]) {
tableLayout.addView(tr);
}
}
protected ArrayList<TableRow> doInBackground(Void... params) {
CopyOnWriteArrayList<TableRow> arr_rows = new CopyOnWriteArrayList<>();
TableRow row = null;
for (int i = 0; i < statementSummaryMainReports.size(); i++) {
StatementSummaryMain report = statementSummaryMainReports.get(i);
row = printRows(report);
arr_rows.add(row);
if(i%25==0) {
publishProgress(arr_rows);
arr_rows.clear();
}
}
publishProgress(arr_rows);
return null;
}
protected void onPostExecute(ArrayList<TableRow> result) {
tableLayout.setVisibility(View.VISIBLE);
hideProgressDialog();
}
}
。
私はそれが悪いデザインだと知っていますが、実際にはテーブルレイアウトを使用する必要があります。 –
したがって、スレッドプールではなく、スレッドプールを使用してください。 –