Необходимо обновить элемент в обзоре переработчика, если он был на экране в течение заданного промежутка времени - PullRequest
0 голосов
/ 08 октября 2018

Используя Kotlin, у меня есть утилита просмотра с адаптером, который отображает Arraylist.Что мне нужно сделать, это установить свойство Object.viewed, если оно было на экране в течение 2 секунд.Это означает, что если вы можете просто быстро прокрутить список, ничего не произойдет, но если вы остановитесь и прочитаете его на одном из них, мне нужно сделать его видимым, чтобы я мог увеличить счетчик просмотров.

Спасибо за любую помощь илиуказатели.

Ответы [ 3 ]

0 голосов
/ 08 октября 2018

Попробуйте использовать обратный отсчет в функции OnResume.

Object:Countdowntimer(2000,1000)........
0 голосов
/ 08 октября 2018

Джил Ванхеде подход будет работать, но немного тяжело на мой вкус.Я бы предложил создать карту ids to currentTime, добавить туда элемент внутри onViewAttachedToWindow и внутри onViewDetachedFromWindow, проверить, прошло ли 2 секунды.(Не забудьте удалить идентификатор с карты внутри onViewDetachedFromWindow независимо от этого)

0 голосов
/ 08 октября 2018

Вы можете взять обработчик с задержкой в ​​2 секунды и внести в него свою логику просмотра.Итак, через 2 секунды обработчик выполнит ваш код, как показано ниже:

//Code inside bindViewHolder() method :
handler = new Handler(); // make it globally
handler.postDelayed(runnable, 2000); // make a runnable with your logic code of viewed.

Теперь переопределите метод с именем onViewDetachedFromWindow(VH holder) и удалите обратный вызов дескриптора здесь.так что если ваше представление отключится до 2000 секунд, код не будет выполнен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...