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

OSCHINA-MIRROR/chinasoft4_ohos-banner

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

Индикатор вью расширяет компонент и реализует индикатор

@since 2021-08-10
*/
public class IndicatorView extends Component implements Indicator {
    public IndicatorView(Context context) {
        super(context);
    }

    public IndicatorView(Context context, AttrSet attrSet) {
        super(context, attrSet);
    }

    public IndicatorView(Context context, AttrSet attrSet, String styleName) {
        super(context, attrSet, styleName);
    }

    @Override
    public void initIndicatorCount(int pagerCount) {
        this.pagerCount = pagerCount;
        setVisibility(pagerCount > 1 ? VISIBLE : GONE);
        requestLayout();
    }

    @Override
    public Component getView() {
        return this;
    }

    @Override
    public DependentLayout.LayoutConfig getParams() {
        if (params == null) {
            params = new DependentLayout.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_CONTENT, NUM_100);
            params.addRule(DependentLayout.LayoutConfig.ALIGN_PARENT_BOTTOM);
            params.setMarginTop(NUM_30);
        }
        return params;
    }

    @Override
    public void setAutoStau(Boolean isAuto) {

    }

    @Override
    public void onPageSliding(int i, float v, int i1) {
        selectedPage = position;
        offset = positionOffset;
        invalidate();
    }

    @Override
    public void onPageSlideStateChanged(int i) {

    }

    @Override
    public void onPageChosen(int i) {

    }
}

Интерфейс баннера

//установка пользовательской анимации
Banner setPageTransformer(boolean reverseDrawingOrder, BannerViewPager.PageTransformer transformer)

//установка баннера для прослушивания скольжения по внешней странице
Banner setOuterPageChangeListener(PageSlider.PageChangedListener outerPageChangeListener)

//установить время автоматического поворота
Banner setAutoTurningTime(int autoTurningTime)

//установить, будет ли баннер автоматически поворачиваться, и он может поворачиваться более чем на одну страницу
Banner setAutoPlay(boolean autoPlay)

//установить индикатор
Banner setIndicator(Indicator indicator)

//установить индикатор
Banner setIndicator(Indicator indicator, boolean attachToRoot)

//определить, является ли поворот бесконечным
boolean isAutoPlay()

//получить текущую позицию
int getCurrentPager()

//начать поворот
void startTurning()

//остановить поворот
void stopTurning()

//установить один экран с несколькими страницами
Banner setPageMargin(int magin, int padding)

//установить направление скольжения
Banner setOrientation(int orientation)

//установить продолжительность переключения
Banner setPagerScrollDuration(int pagerScrollDuration)

Использование интерфейса IndicatorView

// установить радиус точки
IndicatorView setIndicatorRadius(float indicatorRadius)

//установить стиль анимации точки
IndicatorView setIndicatorStyle(int indicatorStyle)

//установить цвет точки по умолчанию
IndicatorView setIndicatorColor(Color indicatorColor)

//установить выбранный цвет точки
IndicatorView setIndicatorSelectorColor(Color indicatorSelectorColor)

//установить коэффициент индикатора, растянуть круг в прямоугольник, чем больше значение, тем длиннее растяжение, по умолчанию 1.0
IndicatorView setIndicatorRatio(float indicatorRatio)

//установить радиус выбранной точки, по умолчанию равен радиусу индикатора, можно установить размер выбранной точки отдельно
IndicatorView setIndicatorSelectedRadius(float indicatorSelectedRadius)

//установить соотношение выбранных точек, контролировать это соотношение, по умолчанию оно равно соотношению индикатора, значение по умолчанию равно 1.0
IndicatorView setIndicatorSelectedRatio(float indicatorSelectedRatio)

Различия в вызовах

  • Из-за отсутствия соответствующего API в SDK анимация CubeInTransformer, CubeOutTransformer, FlipHorizontalTransformer, FlipVerticalTransformer, StackTransformer, TabletTransformer, ZoomInTransformer, ZoomOutTransformer и RotateYTransformer не реализована.
  • Если установлено три экрана на одной странице, если страница сложена, задняя страница будет покрывать переднюю страницу. OpenHarmony внутренне реализует pageslider, а задняя страница находится над передней страницей. Это вызвано системными причинами.
  • Список вложенных баннеров, настраиваемый эффект обновления списка действует на баннер, но жест смахивания вниз не работает, потому что он не поддерживает распространение событий, поэтому этот эффект не может быть реализован.

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

CodeCheck — код протестирован без исключений.

CloudTest — код протестирован без исключений.

Вирусное сканирование прошло успешно.

Текущая версия demo функционально практически не отличается от исходного компонента.

Версия итерации

0.0.1-SNAPSHOT

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

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

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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