Picassoを使用してプラグインを作成しました。android.widget.ImageViewを使用して、キャッシュされた画像を読み込みます。 リピータを使用している場合、プラグインが正常に動作しますが、私は第七項目について、過去をスクロールした後、ListViewコントロールでそれを使用してみたときに、リストビューは、イメージソースはリストビュー古い画像を再利用する
答えて
理由が異なる場合でも、古い画像を再利用するために開始しますリストビューはフラグメント全体を再利用するためです何が起こるかは、あなたのイメージがクリアされない限り、イメージが再利用されて古いイメージが表示されるということです。
私は実際にピカソを自分で使用します。これは私の現在のピカソの図書館です。 下のコードを見ると、新しい.urlを設定すると、既存のイメージがクリアされます。 (私は特定の行にコメントをつけました) - この方法ではイメージが空白になり、ピカソはメモリ、ディスク、またはリモートURL(私の場合はリモートURL)から読み込み、適切なイメージを割り当てます。
"use strict";
var Img = require('ui/image').Image;
var application = require("application");
var PT = com.squareup.picasso.Target.extend("Target",{
_owner: null,
_url: null,
onBitmapLoaded: function(bitmap, from) {
// Since the actual image/target is cached; it is possible that the
// target will not match so we don't replace the image already seen
if (this._url !== this._owner._url) {
return;
}
this._owner.src = bitmap;
},
onBitmapFailed: function(ed) {
console.log("Failed File", this._url);
},
onPrepareLoad: function(ed) {
}
});
Object.defineProperty(Img.prototype, "url", {
get: function() {
return this._url;
},
set: function(src) {
if (src == null || src === "") {
this._url = "";
this.src = null;
return;
}
var dest = src;
this._url = dest;
this.src = null; // -- THIS IS THE LINE TO CLEAR THE IMAGE
try {
var target = new PT();
target._owner = this;
target._url = dest;
var x = com.squareup.picasso.Picasso.with(application.android.context).load(dest).into(target);
} catch (e) {
console.log("Exception",e);
}
},
enumerable: true,
configurable: true
});
あなたは一度だけ、このクラスを要求する必要がありますのでご注意ください、それは<画像>部品に付着して、新しいする.urlプロパティを追加します。これは私がこれを宣言的なXMLで他の画面のすべてで使用できるようにし、ピカソが必要なときにはピラーがそのイメージの読み込みを引き継ぐために.urlプロパティを使うだけです。
ありがとう、しかし私は 'onImageSourcePropertyChanged(data:PropertyChangeData){ を使用しました。var image =
私はあなたがここで言うことに従っていない。あなたはイメージを適切にクリアするために上記を使う方法を理解したと言っていますか?あるいは、コードがまったく違うのですか? – Nathanael
私は別の方法で自分の問題を解決しようとした –
- 1. リストビュー再利用可能なコンポーネント - アーキテクチャ - アンドロイド
- 2. フィルタを使用した背景画像の再利用
- 3. 古い画像をキャッシュする
- 4. 「古い」画像を表示するUIImageView
- 5. 特典画像を再利用できませんか?
- 6. リストビューのスクロール画像
- 7. リストビューでの画像
- 8. 異なる画像のリストビュー
- 9. リストビューに画像をロードする
- 10. カスタム描画アノテーションビューの再利用
- 11. Fftw3ライブラリと再利用を計画しています
- 12. リストビュー表示の画像
- 13. 単純な画像のリストビュー
- 14. リストビューに背景画像を適用する
- 15. オブジェクトを再利用する
- 16. IndexSearcherを再利用する
- 17. Androidリストビューの空のビューとしてヘッダーレイアウトを再利用する方法
- 18. セルを再利用すると、UITableViewセルを再利用するとクラッシュする
- 19. 新しいアクティビティを開始するタイミングと、古いものをAndroidで再利用する場合
- 20. iPhone drawRectビューを描画するために再利用
- 21. MFMailComposeViewControllerを再利用
- 22. サブビューを再利用
- 23. FtpWebRequestを再利用
- 24. 再利用アクションメーラテンプレート
- 25. WPF - 再利用
- 26. 再利用フラグメント
- 27. 再利用値
- 28. Android SimpleAdapter画像をリストビューに追加
- 29. WinFormsのみの画像を含むリストビュー
- 30. リストビューから画像を取得
ListViewに使用するアダプタクラスのコードを提供できますか? –
[プラグイン](https://github.com/triniwiz/nativescript-image-cache-it) マイコード[ます。myList(https://gist.github.com/triniwiz/204c20cc03a5f0cd2e48c062e9434b77)、 [MyControlと](https://gist.github.com/triniwiz/a0f4db3a25a5c109e070a800b672e719) –