Слушатели Fresco, когда их зовут?

Следуя документации Fresco: http://frescolib.org/docs/listening-to-events.html

Я настроил прослушиватель, чтобы уведомлять меня о событиях, но что мне нужно знать (и я нигде не мог найти эту информацию), так это то, будут ли вызовы с низким разрешением также уведомлять слушателей. И если да, то как этого избежать или установить другой слушатель для вызовов с низким разрешением. Для тех, кто интересуется, Fresco может загружать версию изображения с низким разрешением перед загрузкой версии с высоким разрешением, и вот как вызываются обратные вызовы, вот что меня смущает.

Это мой код, для справки:

/*
   Here we create the controller, aggregating everything that has been done before and some other settings, and set the controller to our view.
*/

PipelineDraweeControllerBuilder builder = Fresco.newDraweeControllerBuilder();
builder.setLowResImageRequest(lowResRequest)
.setImageRequest(request)
.setTapToRetryEnabled(true)
.setControllerListener(controllerListener) // this is the callback listener
.setOldController(container.getController());
DraweeController controller = builder.build();

person Felipe Ribeiro R. Magalhaes    schedule 25.09.2017    source источник


Ответы (1)


Если вы хотите уведомлять о событиях запроса с низким разрешением, вам нужно добавить RequestListener к запросу с низким разрешением:

ImageRequestBuilder.fromRequest(request)
            .setRequestListener(requestListener)
            .build();

Если исходный запрос изображения загружается быстрее, чем в низком разрешении, Fresco вызовет onRequestCancelation прослушиватель запроса изображения в низком разрешении.

person bvarga    schedule 25.09.2017
comment
Мне нужны только события запроса высокого разрешения. И у меня есть индивидуальный запрос на изображение в высоком разрешении. Должен ли я установить прослушиватель там вместо того, чтобы устанавливать его в контроллере? Я немного запутался в различиях между прослушивателем контроллера и прослушивателем запросов. - person Felipe Ribeiro R. Magalhaes; 25.09.2017
comment
Да, вы должны установить прослушиватель по запросу, но прослушиватели запросов добавляются глобально, регистрируются в ImagePipelineConfig и регистрируют все запросы. Проверьте различия по вашей ссылке: frescolib.org/docs/listening-to-events.html Я думаю, вам нужен прослушиватель контроллера - person bvarga; 25.09.2017