Ultra-Pull-To-Refresh_ohos
Проект основан на открытом проекте android-Ultra-Pull-To-Refresh и представляет собой его перенос и разработку с целью адаптации под HarmonyOS. Исходный проект можно отследить по тегам и адресу GitHub (https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh).
Обновление данных при пролистывании вниз широко используется в различных приложениях. Этот функционал стал привычным для пользователей. Данный проект представляет собой перенос и адаптацию соответствующего компонента из Android для использования в HarmonyOS.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
……
}
Компонент состоит из двух основных частей: header (верхняя часть) и content (основная страница).
Header отображает анимацию, которая информирует пользователя о загрузке обновлений. Content показывает основное содержимое страницы.
— расстояние обновления: необходимо достичь определённого расстояния для запуска обновления. Это расстояние называется расстоянием обновления; — сохранение положения header во время обновления: во время обновления отображается анимация header, показывающая загрузку обновлений. Расстояние пролистывания в этот момент называется расстоянием сохранения header;
— освобождение обновления: обновление не запускается, пока не будет достигнуто расстояние обновления. Обновление происходит только после того, как пользователь отпускает палец после достижения этого расстояния; — если после достижения расстояния обновления пользователь перемещает палец так, что расстояние пролистывания становится меньше расстояния обновления, а затем отпускает палец, обновление не происходит, и header возвращается в исходное положение;
В этом проекте расстояние обновления и расстояние сохранения header объединены в одно расстояние. Реализовано освобождение обновления, и можно выбрать, сохранять ли положение header.
PtrHandler интерфейс
onRefreshBegin() — метод, вызываемый при запуске обновления для выполнения обновления данных.
checkCanDoRefresh() — метод для определения момента запуска обновления.
onRefreshComplete() — метод, вызываемый после завершения обновления для выполнения соответствующих действий.
PtrUIHandler интерфейс
onUIRefreshPrepare() — вызывается, когда header пролистнут, но расстояние пролистывания не достигло расстояния обновления. Используется для выполнения соответствующих операций.
onUIRefreshBegin() — вызывается, когда header пролистнут до расстояния обновления. Начинается анимация обновления.
onUIRefreshComplete() — вызывается после завершения анимации обновления. Выполняются соответствующие операции.
onUIPositionOver() — вызывается, когда header пролистнут дальше расстояния обновления. Выполняются соответствующие действия.
Header использует PtrUIHandler интерфейс.
setPullRefreshHeight(int pullRefreshHeight) — устанавливает расстояние обновления.
setmImage(Image mImage) — устанавливает изображения для анимации обновления.
setText(Text mText) — устанавливает текст для анимации обновления.
ptrLayout использует PtrHandler интерфейс.
setHeader(abstractHeader header) — устанавливает компонент header.
setContent(Component content) — устанавливает основную страницу content.
setPtrHandler(PtrHandler ptrHandler) — устанавливает интерфейс обновления.
При использовании можно наследовать Header и ptrLayout и переопределить методы PtrUIHandler и PtrHandler для реализации собственных эффектов анимации обновления и обновления данных. Примеры использования можно найти в entry.
CodeCheck не выявил ошибок в коде. VirusTotal подтвердил безопасность. Тестировщик: Ли Тяньнин.
v0.1.0
Ultra-Pull-To-Refresh_ohos распространяется под лицензией Apache License, version 2.0.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )