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

OSCHINA-MIRROR/chinasoft4_ohos-FlipViewPager.Draco

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

FlipViewPager.Draco

Проект представляет собой:

  • Название проекта: FlipViewPager.Draco.
  • Серия: openharmony, адаптация сторонних компонентов.
  • Функция: реализация 3D-эффекта переворота страницы в ListContainer. Перелистывание элементов слева направо позволяет переключаться между страницами.
  • Состояние переноса проекта: основная функция реализована.
  • Различия при вызове: отсутствуют.
  • Версия разработки: SDK6, DevEco Studio2.2 Beta1.
  • Базовая версия: master-ветка.

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

FlipViewPager.Draco

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

  1. В файле build.gradle в корневом каталоге проекта:
allprojects {
    repositories {
        maven {
            url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
        }
    }
}
  1. В файле build.gradle модуля entry:
 dependencies {
    implementation('com.gitee.chinasoft_ohos:FlipViewPager.Draco:0.0.3-SNAPSHOT')
    
 }

В случае проблем с запуском проекта на SDK6 и DevEco Studio 2.2 Beta1, рекомендуется удалить файлы .gradle, .idea, build, gradle и build.gradle и создать новый проект, соответствующий вашей версии. Затем скопируйте файлы из нового проекта в корневой каталог.

Использование:

Ссылайтесь на XML-макет FlipViewPager:

<?xml version="1.0" encoding="utf-8"?>
<com.yalantis.flipviewpager.FlipViewPager
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:id="$+id:flip_list"
    ohos:height="200vp"
    ohos:width="match_parent"/>

Создайте свой Provider, наследуя от BaseFlipAdapter и реализуя абстрактные методы:

public class FriendProvider extends BaseItemProvider {
    // ... other code
    @Override
    public Component getComponent(int position, Component component, ComponentContainer componentContainer) {
        Component cpt = component;
        if (cpt == null) {
            cpt = LayoutScatter.getInstance(context).parse(ResourceTable.Layout_friend_item, null, false);
        }
        final int defaultPage = 2;
        FlipViewPager flipViewPager = (FlipViewPager) cpt.findComponentById(ResourceTable.Id_flip_list);
        // Устанавливаем позицию flipView
        flipViewPager.setIndex(position);
        // Добавляем слушателя для обработки касаний
        flipViewPager.setLayoutTouchListener(this.layoutTouchListener);
        // Включаем эффект тени при складывании
        flipViewPager.setFoldShading(new SimpleFlipShading());
        // Назначаем provider
        flipViewPager.setProvider(new FlipViewPager.FlipProvider(flipItemArray.get(position)));
        // Определяем начальную страницу
        flipViewPager.setCurrentPage(defaultPage);
        return cpt;
    }
}

Реализуйте LayoutTouchListener для отслеживания событий касания:

public class MainAbilitySlice extends AbilitySlice implements LayoutTouchListener {
    // other code
    @Override
    public void requestDisallowInterceptTouchEvent(boolean isEnable) {
        // Управляем реакцией родительского макета на события касания
        friendListContainer.setEnabled(isEnable);
    }

    @Override
    public void clickedItem(int position, int page, int direction) {
        // При нажатии на аватар друга показываем никнейм
        if (page == num2) {
            new ToastDialog(this)
                    .setOffset(0,offsetY)
                    .setText(Utils.friends.get(position * num2 + direction).getNickname())
                    .show();
        }
    }
}

Назначьте свой Provider для ListContainer:

public class MainAbilitySlice extends AbilitySlice implements LayoutTouchListener {
    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        friendListContainer = (ListContainer) findComponentById(ResourceTable.Id_friendList);
        flipItemArray = new ArrayList<>();
        for (int i = 0; i < Utils.friends.size(); i += num2) {
            flipItemArray.add(FlipItemUtil.getFlipItems(i, i + 1, getContext()));
        }
        FriendProvider listProvider = new FriendProvider(flipItemArray, this);
        // Регистрируем слушателя
        listProvider.setLayoutTouchListener(this);
        // Настраиваем поставщика контента
        friendListContainer.setItemProvider(listProvider);
        friendListContainer.setLongClickable(false);
    }
}

Тестирование:

CodeCheck — код протестирован, ошибок не обнаружено.

CloudTest — код протестирован, ошибок не обнаружено.

Проверка на вирусы — успешно пройдена.

Сравнение текущей версии с исходным компонентом — существенных различий нет.

Версия:

0.0.3-SNAPSHOT. Распространено на условиях «КАК ЕСТЬ», БЕЗ ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующего разрешения и ограничения в соответствии с Лицензией.

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

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

Введение

Предоставить функцию переворота страницы, используя ListContainer. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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