QML-тип PagedView
Страничный просмотр элемента. Подробнее…
| Строка импорта: | import Sailfish.Silica 1.0 | 
| Наследуется от: | SilicaControl | 
Свойства
- cacheSize : int
 - contentItem : Item
 - count : int
 - currentIndex : int
 - currentItem : string
 - delegate : Component
 - direction : enum
 - dragThreshold : int
 - dragging : bool
 - horizontalAlignment : enum
 - horizontalSpacing : real
 - interactive : bool
 - model : variant
 - moveDragThreshold : bool
 - moveDuration : int
 - moving : bool
 - verticalAlignment : enum
 - verticalSpacing : real
 - wrapMode : enum
 
Прикрепляемые свойства
- contentHeight : real
 - contentWidth : real
 - view : PagedView
 
Методы
- 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, текущий элемент будет заменён без перехода, и любая текущая анимация будет прервана.