diff --git a/README.md b/README.md index 7d204f4..81b77b7 100644 --- a/README.md +++ b/README.md @@ -242,8 +242,8 @@ ImageKnifeComponent({ ImageKnifeOption: } }).width(100).height(100) ``` -#### 9.ImageKnifeComponent - syncLoad 的使用 -修复在消息列表场景,新增消息时头像出现闪动 +#### 9.ImageKnifeComponent - syncLoad +设置是否同步加载图片,默认是异步加载。建议加载尺寸较小的本地图片时将syncLoad设为true,因为耗时较短,在主线程上执行即可 ``` ImageKnifeComponent({ imageKnifeOption:{ diff --git a/library/src/main/ets/ImageKnifeDispatcher.ets b/library/src/main/ets/ImageKnifeDispatcher.ets index ab48cd4..56b81c3 100644 --- a/library/src/main/ets/ImageKnifeDispatcher.ets +++ b/library/src/main/ets/ImageKnifeDispatcher.ets @@ -284,32 +284,30 @@ export class ImageKnifeDispatcher { // todo 判断request生命周期,已销毁的不需要再绘制 // key相同的request,一起绘制 requestList.forEach((requestWithSource: ImageKnifeRequestWithSource) => { - if (requestWithSource.request.requestState === ImageKnifeRequestState.DESTROY) { - return; - } - // 画主图 - if (requestWithSource.source === ImageKnifeRequestSource.SRC || - requestWithSource.source === ImageKnifeRequestSource.ERROR_HOLDER - || (requestWithSource.source === ImageKnifeRequestSource.PLACE_HOLDER && - requestWithSource.request.requestState === ImageKnifeRequestState.PROGRESS)) { - LogUtil.log("ImageKnife_DataTime_getAndShowImage_showPixelMap.start:"+currentRequest.imageKnifeOption.loadSrc) - requestWithSource.request.ImageKnifeRequestCallback.showPixelMap(requestWithSource.request.componentVersion, - ImageKnifeData.source, requestWithSource.source); - LogUtil.log("ImageKnife_DataTime_getAndShowImage_showPixelMap.end:"+currentRequest.imageKnifeOption.loadSrc) - } - - if (requestWithSource.source == ImageKnifeRequestSource.SRC) { - requestWithSource.request.requestState = ImageKnifeRequestState.COMPLETE; - if (requestWithSource.request.imageKnifeOption.onLoadListener && - requestWithSource.request.imageKnifeOption.onLoadListener.onLoadSuccess) { - // 回调请求成功 - requestWithSource.request.imageKnifeOption.onLoadListener.onLoadSuccess(ImageKnifeData.source,ImageKnifeData.imageWidth,ImageKnifeData.imageHeight); - LogUtil.log("ImageKnife_DataTime_getAndShowImage_onLoadSuccess:"+currentRequest.imageKnifeOption.loadSrc) + if (requestWithSource.request.requestState !== ImageKnifeRequestState.DESTROY) { + // 画主图 + if (requestWithSource.source === ImageKnifeRequestSource.SRC || + requestWithSource.source === ImageKnifeRequestSource.ERROR_HOLDER + || (requestWithSource.source === ImageKnifeRequestSource.PLACE_HOLDER && + requestWithSource.request.requestState === ImageKnifeRequestState.PROGRESS)) { + LogUtil.log("ImageKnife_DataTime_getAndShowImage_showPixelMap.start:"+currentRequest.imageKnifeOption.loadSrc) + requestWithSource.request.ImageKnifeRequestCallback.showPixelMap(requestWithSource.request.componentVersion, + ImageKnifeData.source, requestWithSource.source); + LogUtil.log("ImageKnife_DataTime_getAndShowImage_showPixelMap.end:"+currentRequest.imageKnifeOption.loadSrc) } - } else if (requestWithSource.source == ImageKnifeRequestSource.ERROR_HOLDER) { - requestWithSource.request.requestState = ImageKnifeRequestState.ERROR; - } + if (requestWithSource.source == ImageKnifeRequestSource.SRC) { + requestWithSource.request.requestState = ImageKnifeRequestState.COMPLETE; + if (requestWithSource.request.imageKnifeOption.onLoadListener && + requestWithSource.request.imageKnifeOption.onLoadListener.onLoadSuccess) { + // 回调请求成功 + requestWithSource.request.imageKnifeOption.onLoadListener.onLoadSuccess(ImageKnifeData.source,ImageKnifeData.imageWidth,ImageKnifeData.imageHeight); + LogUtil.log("ImageKnife_DataTime_getAndShowImage_onLoadSuccess:"+currentRequest.imageKnifeOption.loadSrc) + } + } else if (requestWithSource.source == ImageKnifeRequestSource.ERROR_HOLDER) { + requestWithSource.request.requestState = ImageKnifeRequestState.ERROR; + } + } }); this.executingJobMap.remove(memoryKey);