各行に 3 つの textview フィールドがある非常に単純なリストがあります。バックグラウンド Web サービス呼び出し ( AsyncTask ) からのデータを使用して、2 秒ごとに値を更新しています。
今後の値を現在の値と比較し、それに応じてアダプタで更新し、必要に応じて最後に notifyDataSetChanged() を呼び出します。
問題は、一度に 3 つ以上の更新行を取得すると、再描画が非常に遅くなるため、UI 全体がハングすることです。もちろん、EfficientAdapter アプローチ ( setTag() および holders ) や getViewTypecount()/getItemViewType() など、ListView のよく知られた最適化をすべて使用しています。また、layoutopt を使用してインターフェイスを可能な限り最適化し、wrap_content の幅と高さを避けて軽量化を試みました。
私たちのアップデートではコストのかかる操作も行いません。TextView のテキスト、textcolor、および backgroundcolor の値を変更するという標準的な操作だけです。
私が見ることができる唯一の奇妙なことは、getView() が行ごとに 3-4-5 回呼び出されることです。
どうすれば高速化できるかについてのアイデアやヒントはありますか?
どうもありがとうございました!