第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么Tag要在Adapter里面設(shè)置

你們不覺(jué)得那個(gè)設(shè)置tag的有問(wèn)題嗎?在adapter里面設(shè)置了tag,去到ImageLoader里面又去判斷是否對(duì)應(yīng)? 你前一秒中剛為這個(gè)ImageView設(shè)置了tag“A”,去到那邊又判斷ImageView.getTag()是否等于“A”?

正在回答

1 回答

因?yàn)槟阍诓粩嗷瑒?dòng)ListView的過(guò)程中,View復(fù)用會(huì)導(dǎo)致你的列表出現(xiàn)錯(cuò)位的情況,所以會(huì)給ImageView設(shè)置一個(gè)Tag,mImageView.setTag(url)。也就是說(shuō)這個(gè)url只能和mImageView匹配。

private Handler mMainHandler = new Handler(Looper.getMainLooper()) {
? ?@Override
? ?public void handleMessage(Message msg) {
? ? ? ?//對(duì)象開(kāi)始傳入主線程中,開(kāi)始處理
? ? ? ?LoaderResult result = (LoaderResult) msg.obj;
? ? ? ?ImageView imageView = result.imageView;
? ? ? ?String url = (String) imageView.getTag();
? ? ? ?if (url.equals(result.url)) {
? ? ? ? ? ?imageView.setImageBitmap(result.bitmap);
? ? ? ?} else {
? ? ? ? ? ?Log.d("gy", "when set image bitmap, but url has changed!");
? ? ? ?}
? ?}
};


public void showImageByThreads(final ImageView imageView, final String urlString) {

? ?Runnable loadBitmapTask = new Runnable() {
? ? ? ?@Override
? ? ? ?public void run() {
? ? ? ? ? ?imageView.setTag(urlString);
? ? ? ? ? ?Bitmap bitmap = loadBitmap(urlString);
? ? ? ? ? ?if (bitmap != null) {
? ? ? ? ? ? ? ?//將對(duì)應(yīng)的imageView,url,bitmap封裝成一個(gè)對(duì)象,然后將對(duì)象傳入Handler
? ? ? ? ? ? ? ?LoaderResult result = new LoaderResult(imageView, urlString, bitmap);
? ? ? ? ? ? ? ?mMainHandler.obtainMessage(MESSAGE_POST_RESULT, result).sendToTarget();

? ? ? ? ? ?}
? ? ? ?}
? ?};
? ?THREAD_POOL_EXECUTOR.execute(loadBitmapTask);
}

LoaderResult對(duì)象對(duì)應(yīng)的ImageView, url, Bitmap。我在showImageByThreads方法中將該對(duì)象傳入Handler,

問(wèn)題就出在,你滑動(dòng)的過(guò)程中中,有可能ImageView和url不對(duì)應(yīng)了,所以需要判斷下,

String url = ImageView.getTag(); // 這是和ImageView對(duì)應(yīng)的url。我們之前設(shè)置的。

LoaderResult對(duì)象的url,是我們傳遞過(guò)去的。有可能這個(gè)會(huì)改變。

說(shuō)了不是很清楚,但是意思,就是這樣的。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

丿M灬S灬N丨

你根本沒(méi)說(shuō)清,你也沒(méi)理解對(duì)。 是convertView緩存機(jī)制 & 異步加載機(jī)制 兩者共同導(dǎo)致的。
2016-08-21 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
Android必學(xué)-異步加載
  • 參與學(xué)習(xí)       50617    人
  • 解答問(wèn)題       326    個(gè)

了解Android中的異步加載處理方法,這是面試問(wèn)的最多的知識(shí)點(diǎn)

進(jìn)入課程

為什么Tag要在Adapter里面設(shè)置

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)