Документация
ОС Аврора 5.1.5

QML-тип PagedView

Страничный просмотр элемента. Подробнее…

Строка импорта: import Sailfish.Silica 1.0
Наследуется от: SilicaControl

Свойства

Прикрепляемые свойства

Методы

  • void moveTo(int index, PagedView::Transition transition)

Подробное описание

Тип PagedView обеспечивает страничный просмотр элемента. Он отображает по одному элементу за раз из набора элементов, созданных из данных model и внешнего вида delegate.

Жест перетаскивания вдоль оси direction интерактивного контейнера переместит соседний элемент в контейнер и сделает его текущим, если элемент был перетащен и отпущен дальше, чем moveDragThreshold. Перелистывание контейнера по той же оси может вызвать изменение элемента без необходимости перетаскивать его так далеко.

Базовый вариант использования просмотра страницы — это слайд-шоу изображений:

import Sailfish.Silica 1.0

PagedView {
    model: ListModel {
        ListElement { url: "image1.jpg" }
        ListElement { url: "image2.jpg" }
        ListElement { url: "image3.jpg" }
        ListElement { url: "image4.jpg" }
    }

    delegate: Image {
        width: PagedView.contentWidth
        height: PagedView.contentHeight

        source: model.url

        fillMode: Image.PreserveAspectFit
    }
}

Примечание. Этот тип находится в стадии разработки и может быть изменён.

Описание свойств

cacheSize : int

Количество элементов, окружающих текущий элемент, включая его, которые будут асинхронно созданы заранее и кэшированы.

Заполнение кеша может улучшить отзывчивость интерфейса при переходе между элементами, поскольку следующий элемент в контейнере обычно доступен и готов к немедленному отображению.

Размер по умолчанию, равный 5 элементам, сделает несколько элементов доступными по обе стороны от текущего элемента.

[read-only] contentItem : Item

Родительский элемент для элементов страницы, созданных в контейнере.

По умолчанию этот элемент заполняет контейнер, но у него можно изменить размер и положение, чтобы ввести поля в интерактивной области контейнера. Это можно использовать, например, для создания пространства для заголовка в верхней части контейнера, где горизонтальные перетаскивания для переключения страниц всё ещё распознаются.

[read-only] count : int

Количество элементов в контейнере.

currentIndex : int

Индекс элемента в модели, который должен отображаться в контейнере.

По умолчанию изменение текущего элемента анимировано. Чтобы изменить текущий индекс без анимации, следует вызвать метод moveTo() с аргументом PagedView.Immediate.

[read-only] currentItem : string

Текущий видимый элемент в контейнере.

Текущий элемент можно изменить через свойство currentIndex или вызвав метод moveTo(). Если контейнер анимируется при изменении текущего индекса, может быть задержка в обновлении текущего элемента.

delegate : Component

Делегат Item, из которого будет построена страница в контейнере на основе элемента в исходной модели model.

direction : enum

Направление, в котором элементы располагаются в контейнере. Оно определяет, с какой стороны появляются элементы для перехода, соседний элемент, который можно перетащить с помощью жеста, и ось для жестов перетаскивания.

Возможные значения:

  • PagedView.LeftToRight — элементы с меньшими индексами располагаются слева от текущего элемента, а элементы с большими индексами — справа.

    Это значение по умолчанию.

  • PagedView.RightToLeft — элементы с меньшими индексами располагаются справа от текущего элемента, а элементы с большими индексами — слева.

  • PagedView.TopToBottom — элементы с меньшими индексами располагаются сверху от текущего элемента, а элементы с большими индексами — снизу.

  • PagedView.BottomToTop — элементы с меньшими индексами располагаются снизу от текущего элемента, а элементы с большими индексами — сверху.

dragThreshold : int

Минимальное расстояние от места нажатия до точки в контейнере, до которой необходимо перетащить элемент, чтобы контейнер начал перетаскивание.

Когда контейнер начинает перемещение, он захватывает жесты перетаскивания у дочерних элементов, поэтому важно, чтобы этот порог был не меньше порога любых дочерних элементов, которые также распознают жесты перетаскивания на той же оси. Точно так же родительский элемент с меньшим порогом перетаскивания может перехватить жесты, которые логически принадлежали этому контейнеру. Стоит рассмотреть возможность увеличения этого значения выше значения по умолчанию Theme::startDragDistance, только если известно, что контейнер не имеет элементов-предков, которые также распознают жесты перетаскивания.

[read-only] dragging : bool

Перемещается ли текущий элемент с помощью жеста перетаскивания.

horizontalAlignment : enum

Горизонтальное выравнивание элементов относительно contentItem контейнера. Выровненное положение перемещаемых по горизонтали элементов будет смещено на величину перетаскивания.

Возможные значения: PagedView.AlignLeft, PagedView.AlignHCenter и PagedView.AlignRight. По умолчанию элементы выравниваются по центру.

horizontalSpacing : real

Расстояние по горизонтали между соседними элементами в контейнере.

interactive : bool

Может ли пользователь переключаться между элементами в контейнере путем перетаскивания. Если значение равно true (по умолчанию), перетаскивание в контейнере приведёт к появлению смежного элемента, а если false, перетаскивание ничего не даст.

model : variant

Модель, содержащая данные элементов для отображения в представлении.

Как и в случае с другими контейнерами для элементов, это может быть реализация C++ QAbstractItemModel, ListModel, DelegateModel, ObjectModel, массив Javascript или число, обозначающее количество элементов.

moveDragThreshold : bool

Минимальное расстояние, на которое элемент в контейнере должен быть перетащен из своего стационарного положения, чтобы он мог быть заменён в качестве текущего элемента на соседний, когда перетаскивание закончено.

moveDuration : int

Продолжительность анимации перемещения страницы.

Изменения страницы, вызванные тапом, могут завершиться за меньшее время.

[read-only] moving : bool

Перемещается ли текущий элемент с помощью жеста перетаскивания или анимации.

verticalAlignment : enum

Вертикальное выравнивание элементов относительно contentItem контейнера. Выровненное положение перемещаемых по вертикали элементов будет смещено на величину перетаскивания.

Возможные значения: PagedView.AlignTop, PagedView.AlignVCenter и PagedView.AlignBottom. По умолчанию элементы выравниваются по центру.

verticalSpacing : real

Расстояние по вертикали между соседними элементами в контейнере.

wrapMode : enum

Определяет, будет ли навигация по контейнеру охватывать конечные элементы.

Возможные значения:

  • PagedView.NoWrap — навигация остановлена на обоих концах. Невозможно вытянуть элемент перед первым в модели или после последнего в контейнере.

  • PagedView.WrapBegin — навигация асимметрична и включает перемещение от первого элемента к последнему, но не от последнего к первому.

  • PagedView.WrapEnd — навигация асимметрична и включает перемещение от последнего элемента к первому, но не от первого к последнему.

  • PagedView.Wrap — навигация имеется на обоих концах. От последнего элемента можно перейти к первому и наоборот.

    Это значение по умолчанию.

Описание прикрепляемых свойств

PagedView.contentHeight : real

Высота contentItem страничного контейнера, которому принадлежит элемент.

PagedView.contentWidth : real

Ширина contentItem страничного контейнера, которому принадлежит элемент.

PagedView.view : PagedView

Страничный контейнер, которому принадлежит элемент.

Описание методов

void moveTo(int index, PagedView::Transition transition)

Изменяет текущий индекс представления на index.

Если transition имеет значение PagedView.Animated, замена текущего элемента будет анимирована. Если оно имеет значение PagedView.Immediate, текущий элемент будет заменён без перехода, и любая текущая анимация будет прервана.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.