ArrayAdapterを使用して、無限のスクロール機能でListViewにデータを設定しています。 ListViewの行にImageViewと2つのTextViewがあります。最初はListViewを10個のアイテムで読み込み、スクロールダウンしてsetonscrolllistenerのWebサービスを呼び出し、次の10個のアイテムをListViewにロードします。 Arraylistに新しい項目が追加されたら、adapter.notifysetdatachanged
を呼び出して、アダプタにListViewをリフレッシュするように指示します。新しい項目が追加されたときにListViewがちらつく
新しいアイテムがListViewに追加されるたびにListView全体が更新され、既にロードされているListViewのイメージが点滅します。はい、私はディスクとメモリの両方のすべてのイメージをキャッシュしています。コードはキャッシュを非常にスムーズに行います。
このadapter.addall(myarraylist)
を使用してアダプタにデータを追加しようとしましたが、役に立たなかった。 ImageViewsはまだ点滅しています。私はStackOverflow上でそれについて多くを検索し、あなたが追加することはできませんし、ListView全体をリフレッシュせずに、ListViewでより多くの項目を表示することができます。私はすでに知っているが、既に読み込まれたデータをリフレッシュするのではなく、ListViewに新しいデータを追加するための何らかの方法が必要である。
このようにアダプタを設定しています。
public View getView(int position, View view, ViewGroup parent)
{
int main = R.layout.layout;
ViewHolder holder = null;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(main, null);
holder.image = (ImageView) convertView.findViewById(R.id.imageview);
///More stuff
view.setTag(holder);
} else {
holder = (ViewHolder)view.getTag();
}
// Loading ImageViews by Urls
return view;
}
誰でもそれを見てください。
正確にはわかりませんが、これは関連している可能性があります。 http://stackoverflow.com/questions/13322575/android-visible-listview-images-flicker-when-adding-data-to-arrayadapter – Zerkz
これを試すhttps://github.com/commonsguy/cwac-endless –
ビューにイメージをロードする方法を示しますか?乾杯。 – asheinfeld