1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chinasoft4_ohos-swipe-maker

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

swipe-maker

Проектное описание

  • Название проекта: swipe-maker
  • Серия: адаптация и перенос третьих сторон компонентов OpenHarmony
  • Функционал: создание собственного проекта с виджетами swipe-out из библиотеки. Вы можете настроить эффект "перетаскивания" самостоятельно, и ограничений нет. Эти примеры можно выполнить за пять минут каждый. (Функция поделиться не реализована из-за различий в API.)
  • Состояние переноса проекта: основные функции завершены
  • Различия при вызове: отсутствуют
  • Версия SDK: 6, DevEco Studio 2.2 Beta1
  • Базовая версия: Release v1.1.1

Демонстрация эффекта

Пример Swipe Swing

Пример Swipe с двух сторон

Пример Drag Right Side Swipe

Пример Two-steps Right Swipe

Инструкция по установке

  1. В файле build.gradle в корневой директории проекта,
allprojects {
    repositories {
        maven {
            url 'https://s01.oss.sonatype.org/content/repositories/releases/'
        }
    }
}
  1. В файле build.gradle модуля entry,
dependencies {
    implementation('com.gitee.chinasoft_ohos:swipemaker:1.0.0')
    ......  
}

Проект может быть запущен непосредственно на SDK 6, DevEco Studio 2.2 Beta1. Если проект не запускается, удалите файлы .gradle, .idea, build, gradle, build.gradle, и создайте новый проект в соответствии со своей версией, а затем скопируйте соответствующие файлы нового проекта в корневую директорию.## Инструкция по использованию Давайте вместе реализуем правый свайп

  1. Расширяйте AbsCoordinatorLayout и создайте свой Provider, в данном примере его называют halfrightcordinatorlayout.
public class HalfRightCoordinatorLayout extends AbsCoordinatorLayout {

Добавьте метод init() и вызывайте его в своём Provider. Установите закрепление для слайдового компонента. Ориентационная точка находится между границами слайдовых карточек. Мы хотим, чтобы слайд происходил внутри границ кнопки mBackgroundView.

public void init() {
    mForegroundView = (SwipeLayout) findComponentById(ResourceTable.Id_foregroundView);
    mBackgroundView = findComponentById(ResourceTable.Id_backgroundView);
    mForegroundView.setOnTranslateChangeListener(this);
    sync(mForegroundView);
    this.addDrawTask(new DrawTask() {
        @Override
        public void onDraw(Component component, Canvas canvas) {
            mForegroundView.anchor(mBackgroundView.getRight(), mBackgroundView.getLeft());
        }
    });
}
  1. Обратите внимание, что в файле разметки: Id SwipeLayout должно быть $+id:foregroundView, а идентификатор backgroundView должен быть $+id:backgroundView.
<?xml version="1.0" encoding="utf-8"?>
<apps.xenione.com.swipelayout.example.swipe.HalfRightCoordinatorLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:width="match_parent"
    ohos:height="250vp">

    <DirectionalLayout
        ohos:id="$+id:backgroundView"
        ohos:height="match_parent"
        ohos:width="match_content"
        ohos:background_element="#FF4081"
        ohos:alignment="center">
        <Image
            ohos:width="match_content"
            ohos:height="match_content"
            ohos:padding="13vp"
            ohos:image_src="$graphic:ic_delete" />
    </DirectionalLayout>
  1. Возвращаемся к классу HalfRightCoordinatorLayout, который наследует от AbsCoordinatorLayout. В этом классе есть обратный вызов с названием onTranslateChange(...).

Также учтите, что в классе HalfRightCoordinatorLayout используется метод sync(), который обеспечивает синхронизацию состояния компонентов.```java @Override public void onTranslateChange(float global, int index, float relative) { }


Вы можете использовать этот метод для отслеживания прогресса при свайпах.
```Параметры описаны ниже:

global: предоставляет нам процент (1%: 0-1); 0 указывает на левую границу, а 1 — на правую границу.

index и relative: если у нас есть более одной части и мы предоставляем более двух закрепленных значений (например, двукратное перемещение), это может произойти.

index: является индексом сечения (если у нас есть три закрепленных значения, у нас будет два сечения: одно от первого до второго закрепленного значения, другое от второго до третьего).

relative: предоставляет процент в рамках указанного сечения (1%: 0-1).

В нашем случае у нас одна часть, поэтому нам не нужно беспокоиться об этом. Давайте добавим хороший эффект перехода:

```java
@Override
public void onTranslateChange(float global, int index, float relative) {
    mBackgroundView.setAlpha(global);
}

Информация о тестировании

Код проверен CodeCheck без ошибок

Код проверен CloudTest без ошибок

Прошел проверку безопасности на наличие вирусов

Функционал текущей версии демо-приложения практически не отличается от оригинальной компоненты

Версионирование

  • 1.0.0

Информация о лицензиях и авторских правах

    
    Лицензировано по лицензии Apache License, Version 2.0 («лицензия»); 
    вы можете использовать этот файл только в соответствии с лицензией. 
    Вы можете получить копию лицензии по адресу
    
       http://www.apache.org/licenses/LICENSE-2.0
    
    В случае, если требование применимо к закону или соглашению письменно, 
    программное обеспечение, распространяемое по лицензии, распространяется на условиях «КАК ЕСТЬ»; 
    БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, как явных, так и подразумеваемых. 
    См. лицензию для конкретного языка, регулирующего права и ограничения по лицензии.
    
    Все права защищены.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Библиотека класса View, которая поможет быстро реализовать различные события скольжения для вашего элемента управления. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/chinasoft4_ohos-swipe-maker.git
git@api.gitlife.ru:oschina-mirror/chinasoft4_ohos-swipe-maker.git
oschina-mirror
chinasoft4_ohos-swipe-maker
chinasoft4_ohos-swipe-maker
master