У меня есть список коллекций и полка. Я могу скачать только 10 штук. Когда пользователь прокрутил страницу до конца, я должен сделать новый запрос. Но я не знаю, как определить конец прокрутки в xml или js
TVML / tvOS Обнаружение конца прокрутки
Ответы (2)
Я обнаружил образцы кодов от Apple и обнаружил одно интересное событие. Он называет «нужно больше».
//A DocumentController subclass that handles pagination for multiple shelfs
class ShelfDocumentController extends DocumentController {
setupDocument(document) {
super.setupDocument(document)
let shelfs = document.getElementsByTagName("shelf")
if (!shelfs || shelfs.lenth == 0) { return }
//enumerate all shelfs in the template
for (let idx = 0; idx < shelfs.length; ++idx) {
let shelf = shelfs.item(idx)
shelf.page = 1
//using the data url from the shelf's first section (there should only be one section per shelf)
let sections = shelf.getElementsByTagName("section")
if (!sections || sections.length == 0) { continue }
let section = sections.item(0)
let pageUrl = section.getAttribute("dataURL")
//add the listener to the shelf
shelf.addEventListener("needsmore", (event) => {
//replace this code with your logic for getting new pages
shelf.page = shelf.page + 1
if (shelf.page > 10) { return }
let nextPageUrl = pageUrl.replace("\.json", "_" + shelf.page + ".json")
this.fetchNextPageAtURL(nextPageUrl, section);
})
}
}
}
person
kylesp1995
schedule
14.06.2018
То же требование, что и у меня, но я не мог найти прямого способа добиться этого, поэтому я могу вам сказать, что я сделал для своего приложения.
Шаг 1: при рендеринге ваших 10 элементов пользовательского интерфейса с использованием xml вы можете добавить один атрибут к элементу ui (для меня это была блокировка) в файле xml.
пример: ‹lockup index =" {{index}} ">
Шаг 2. Добавьте документ для записи о мероприятии.
doc.addEventListener("highlight",_handleHighlight)
Шаг 3. Каждый раз, когда блокировка попадает в фокус, управление переходит к функции _handleHighlight. там вы можете найти индекс, на основе которого выполняется разбивка на страницы.
_handleHighlight(event) {
var self = this;
var ele = event.target;
var index = ele.getAttribute("index")
// if idndex > (item.count - 3) perform pagination
}
person
Santosh Sahoo
schedule
07.06.2018