Позволяет отслеживать скроллинг страниц, включая реализацию с использованием RxJava.
Отслеживание скроллинга |
---|
![]() |
Используйте DevEco Studio и скачайте SDK OpenHarmony. Убедитесь, что версия зависимостей в файле build.gradle проекта совпадает с версией используемой при создании нового проекта в вашем IDE.
Метод 1:
Создайте HAR-пакет из библиотеки и поместите его в папку libs.
Добавьте следующий код в gradle вашего entry-проекта:
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
Метод 2:
allprojects{
repositories{
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:swipe:1.0.5'
Шаг 1: Создайте атрибут Swipe
в Ability:
swipe = new Swipe();
Шаг 2: Инициализируйте объект Swipe
и установите слушатель:
swipe.setListener(new SwipeListener() {
@Override public void onSwipingLeft(final TouchEvent event) {
info.setText("SLIDING_LEFT");
}
@Override public boolean onSwipedLeft(final TouchEvent event) {
info.setText("SLID_LEFT");
return false;
}
@Override public void onSwipingRight(final TouchEvent event) {
info.setText("SLIDING_RIGHT");
}
@Override public boolean onSwipedRight(final TouchEvent event) {
info.setText("SLID_RIGHT");
return false;
}
});
``` @Override public void onSwipingUp(final TouchEvent event) {
info.setText("ПОДЪЕМ_СЛИДАЙНГ");
}
@Override public boolean onSwipedUp(final TouchEvent event) {
info.setText("ПОДЪЕМ_СЛИД");
return false;
}
@Override public void onSwipingDown(final TouchEvent event) {
info.setText("СПУСК_СЛИДАЙНГ");
}
@Override public boolean onSwipedDown(final TouchEvent event) {
info.setText("СПУСК_СЛИД");
return false;
}
});
## использование rxjava
**Шаг 1**: Создайте атрибут `Swipe` и `Disposable` в классе `Ability`:
private Swipe swipe; private Disposable disposable; swipe = new Swipe();
**Шаг 2**: Инициализируйте объект `Swipe` и подписывайтесь на `Observable`:
disposable = swipe.observe() .subscribeOn(Schedulers.computation()) .observeOn(HarmonySchedulers.mainThread()) .subscribe(swipeEvent -> info.setText(swipeEvent.toString()));
`SwipeEvent` — это перечисление со следующими значениями:
public enum SwipeEvent { SWIPING_LEFT, SWIPED_LEFT, SWIPING_RIGHT, SWIPED_RIGHT, SWIPING_UP, SWIPED_UP, SWIPING_DOWN, SWIPED_DOWN }
**Шаг 3**: Переопределите метод `onTouchEvent(Component component, TouchEvent touchEvent)`:
@Override public boolean onTouchEvent(Component component, TouchEvent touchEvent) { swipe.dispatchTouchEvent(touchEvent); return true; }
**Шаг 4**: Освобождение ранее созданного `Disposable`, когда он больше не требуется:
@Override protected void onInactive() { super.onInactive(); safelyUnsubscribe(disposable); }
private void safelyUnsubscribe(Disposable disposable) { if (disposable != null && !disposable.isDisposed()) { disposable.dispose(); } }
## Лицензия
Copyright 2016 Piotr Wittchen
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Кроме случаев, когда это требует применимое законодательство или соглашение письменно, программное обеспечение распространяемое под Лицензией распространяется на условиях "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО ТИПА, как явленных, так и подразумеваемых. Смотрите Лицензию для конкретного языка, регулирующего права и ограничения под лицензией.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )