QML-тип ListItem
Простой элемент в стиле ОС Аврора для создания интерактивных элементов списка. Подробнее…
| Строка импорта: | import Sailfish.Silica 1.0 |
| Наследуется от: | BackgroundItem |
Свойства
- contentHeight : real
- hidden : bool
- highlighted : bool
- menu : var
- menuOpen : bool
- openMenuOnPressAndHold : bool
Методы
- animateRemoval(Item delegate)
- closeMenu()
- openMenu(object properties)
- remorseAction(string text, object action, int timeout)
- remorseDelete(object action, int timeout)
Подробное описание
Тип ListItem реализует базовый интерактивный элемент списка в стиле ОС Аврора. Он позволяет:
- показывать контекстное меню (задается в свойстве menu) при долгом нажатии на элемент списка;
- заменять собой элемент RemorseItem при вызове метода remorseAction() (обычно используется для отображения таймера удаления, когда пользователь вызывает команду удаления элемента из контекстного меню);
- запускать анимацию удаления при вызове метода animateRemoval().
Например:
import QtQuick 2.2
import Sailfish.Silica 1.0
ListView {
id: view
delegate: ListItem {
id: listItem
menu: contextMenu
contentHeight: Theme.itemSizeMedium // Делегат высотой в две строки
ListView.onRemove: animateRemoval(listItem)
function remove() {
remorseAction("Удаление", function() { view.model.remove(index) })
}
Label {
id: label
text: "Элемент: " + index
}
Label {
anchors.top: label.bottom
text: "Нижняя строка текста"
font.pixelSize: Theme.fontSizeSmall
}
Component {
id: contextMenu
ContextMenu {
MenuItem {
text: "Удалить"
onClicked: remove()
}
}
}
}
}
Примечание: высота элемента ListItem (свойство height) не должна изменяться, т.к. она
увеличивается автоматически при открытии меню. Вместо этого высоту следует задавать с помощью свойства
contentHeight.
См. также GridItem и BackgroundItem.
Описание свойств
contentHeight : real
Задает значение высоты делегата. При открытии контекстного меню ContextMenu высота делегата может
увеличиваться, но высота содержимого по-прежнему будет соответствовать значению свойства contentHeight.
Значение по умолчанию: Theme.itemSizeSmall.
Для этого свойства можно установить значение true, чтобы моментально скрыть элемент, когда он был выбран для
удаления в другом месте. Например он входит в число элементов, выбранных для удаления. Дополнительную информацию можно
получить в документации Remorse.
highlighted : bool
При истинном значении свойства highlighted содержимое должно быть выделено другим цветом. Данное свойство истинно
при истинном значении свойства down либо при открытом меню.
Дополнительную информацию об оформлении интерактивных элементов управления в ОС Аврора можно получить в описании типа Theme.
См. также BackgroundItem::highlighted.
menu : var
Содержит контекстное меню ContextMenu, которое открывается при долгом нажатии.
Это свойство может быть задано как значение типа Component с элементом верхнего уровня ContextMenu или как предварительно созданный объект ContextMenu. Если предоставлен тип Component, то контекстное меню ContextMenu может быть создано или удалено по мере необходимости. В большинстве случаев предпочтение следует отдавать использованию типа Component, чтобы избежать ненужной загрузки меню.
[read-only] menuOpen : bool
Истинно, когда меню, заданное свойством menu, открыто.
openMenuOnPressAndHold : bool
При истинном значении данного свойства долгое нажатие на элемент разрешает открытие меню, заданное свойством menu.
Значение по умолчанию: true.
Описание методов
animateRemoval(Item delegate)
Создаёт и запускает анимацию RemoveAnimation. Аргумент delegate данного метода должен
указывать на элемент верхнего уровня делегата, если он не наследуется от ListItem.
Анимация объекта с помощью метода animateRemoval() позволяет избежать создания
RemoveAnimation в делегате.
См. также RemoveAnimation.
closeMenu()
Скрывает отображаемое в данный момент меню.
openMenu(object properties)
Отображает меню, заданное свойством menu.
С помощью необязательного параметра properties указываются набор пар ключ-значение, которые будут заданы меню.
remorseAction(string text, object action, int timeout)
Создаёт RemorseItem с text и устанавливает действие обратного вызова action. Аргумент timeout является необязательным и по умолчанию равен 4 секундам, если он не задан.
Наиболее распространённым вариантом использования элемента с возможностью отмены является удаление элемента. В этом
случае можно опустить параметр text и вместо него использовать функцию
remorseDelete(). В случаях удаления текстовое описание полностью опускается.
text должен содержать глагол, описывающий совершаемое действие. Следует использовать прошедшее время, чтобы яснее указать, что от пользователя не требуется никаких дополнительных шагов, если он не хочет отменить действие. Например, элемент, который раньше выводил текст «Очистка данных», теперь будет отображать «Данные очищены».
С точки зрения функциональности элементы, позволяющие отменять действия, работают как раньше.
Возвращает созданный экземпляр RemorseItem, который будет уничтожен автоматически после выполнения или отмены действия.
remorseDelete(object action, int timeout)
Создаёт экземпляр элемента RemorseItem и задаёт функцию обратного вызова для обработки действия action. Аргумент timeout не является обязательным и по умолчанию будет равен 4 секундам, если он не задан.
Возвращает созданный экземпляр RemorseItem, который будет уничтожен автоматически после выполнения или отмены действия.