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

OSCHINA-MIRROR/chinasoft_ohos-RollViewPager

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

RollViewPager

Проект

  • Название проекта: RollViewPager.
  • Серия: openharmony, сторонние компоненты, адаптация.
  • Функция: компонент для создания карусели изображений.
  • Состояние адаптации проекта: основная функция выполнена.
  • Различия в вызовах: есть. В исходном проекте было три метода для приостановки и воспроизведения, в OHOS остался один метод.
  • Версия разработки: SDK6, DevEco Studio 2.2 Beta1.
  • Базовая версия: 1.4.6.

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

example

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

  1. Добавьте зависимость в файл build.gradle на уровне модуля, добавив ссылку на jar-пакет в каталоге libs в теге dependencies.
// Добавляем maven-репозиторий
repositories {
    maven {
        url 'https://s01.oss.sonatype.org/content/repositories/release/'
    }
}
// Добавляем зависимость библиотеки
dependencies {
    implementation 'com.gitee.chinasoft_ohos:rollviewpager:1.0.1'   
}

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

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

  • Свойства XML:
<com.jude.rollviewpager.RollPagerView
      ohos:height="180vp"
      ohos:width="match_parent"
/>
  • Пример использования Java:

Предоставьте адаптер PageSliderAdapter, который наследуется от класса PageSliderProvider. В этом классе реализуйте метод createPageInContainer для определения пользовательского интерфейса, который будет отображаться в карусели.

@Override
public Object createPageInContainer(ComponentContainer componentContainer, int i) {

    ViewHolder viewHolder;
    Component component = null;

    if (component == null) {
        component = LayoutScatter.getInstance(context).parse(ResourceTable.Layout_pager_item, null, false);
        if (!(component instanceof ComponentContainer)) {
            return "";
        }
        componentContainer.addComponent(component);
        viewHolder = new ViewHolder();
        viewHolder.image = (Image) componentContainer.findComponentById(ResourceTable.Id_image_pager);
        component.setTag(this);
    } else {
        viewHolder = (ViewHolder) component.getTag();
    }
    viewHolder.image.setPixelMap(pages.get(i));
    viewHolder.image.setScaleMode(Image.ScaleMode.STRETCH);

    return componentContainer;
}
  • Реализация адаптера и добавление функций карусели:
/**
 * Установка адаптера и изображений для карусели
 *
 * @param pageSliderAdapter Адаптер
 * @param page Коллекция изображений
 */
public void setadapter(PageSliderAdapter pageSliderAdapter, ArrayList<Integer> page) {
    pageSlider.setProvider(pageSliderAdapter);
    this.pages = page;
}
  • Функции паузы и воспроизведения. По умолчанию карусель воспроизводится. Вызов этого метода позволяет ей автоматически определять состояние паузы или воспроизведения.
private boolean isStartEnd = true; // true — карусель по умолчанию воспроизводится
/**
 * Пауза или воспроизведение. true — воспроизведение, flase — пауза, по умолчанию — воспроизведение
 */
public void setStartEnd() {
    if (isStartEnd) {
        this.isStartEnd = false;
    } else {
        this.isStartEnd = true;
    }
}
  • Добавление изображений в коллекцию list и создание нового адаптера для компонента:
ArrayList<Integer> page = new ArrayList<>();
page.add(ResourceTable.Media_img1);
page.add(ResourceTable.Media_img2);
page.add(ResourceTable.Media_img3);
page.add(ResourceTable.Media_img4);
page.add(ResourceTable.Media_img5);
PageSliderAdapter bannerAdapter1 = new PageSliderAdapter(page, getContext());
rollPagerView.setadapter(bannerAdapter1, page);
  • ClickedListener, событие клика по элементу:
rollPagerView.setClickedListener(new Component.ClickedListener() {
    @Override
    public void onClick(Component component) {
       // Здесь напишите собственный код логики
    }
});

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

CodeCheck — тестирование кода без исключений.
CloudTest — тестирование кода без исключений.
Проверка безопасности — прошла успешно.
Текущая версия demo функционально практически не отличается от исходного компонента OHOS.

Версии

1.0.1

Авторские права и лицензии

Copyright 2015 Jude

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 at'

http://www.apache.org/licenses/LICENSE-2.0

'Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

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

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

Введение

Автоматический вьюпейджер с каруселью. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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