hptdialog
— это минималистичная библиотека для отображения диалоговых окон, основанная на пользовательском диалоговом окне CustomDialog
. Она упрощает вызовы и помогает разработчикам быстро создавать пользовательские диалоговые окна. В настоящее время включает hptdialog
и hptBottomSheet
.
npm install @gancao/hptdialog
Метод | Параметры | Описание |
---|---|---|
HPTDialogUtil.show | component: Object — this текущего компонента info: DialogInfo — содержимое диалогового окна, включая заголовок, сообщение и т.д. config?: DialogConfig — конфигурация стиля диалогового окна |
Отображение диалогового окна |
------------------------------- | ------------------------------------------- | -------------------------------------------------------------------- |
title |
ResourceStr |
Заголовок диалогового окна, необязательный |
message |
ResourceStr |
Содержимое сообщения диалогового окна, необязательное |
messageContent |
CustomBuilder |
Пользовательское содержимое, используемое для замены поля message ; messagePadding не применимо к этому полю |
buttons |
DialogButton[] |
Используется при необходимости нескольких кнопок; Тип DialogButton см. в описании параметров DialogButton
|
cancel |
ResourceStr |
Текст кнопки "Отмена", по умолчанию "Отмена" |
confirm |
ResourceStr |
Текст кнопки "Ок", по умолчанию "Ок" |
cancelOnClick |
(controller? : DialogController) => void |
Обработчик события нажатия на кнопку "Отмена", позволяет контролировать закрытие диалогового окна с помощью controller
|
confirmOnClick |
(controller? : DialogController) => void |
Обработчик события нажатия на кнопку "Ок", позволяет контролировать закрытие диалогового окна с помощью controller
|
cancelCallBack |
() => void |
Обработчик события отмены диалогового окна, связан с действиями, такими как нажатие на кнопку "Отмена" или закрытие окна |
--------------------------------- | --------------------------------- | -------------------------------------------------------------- |
margin |
Margin |
Отступ от экрана |
padding |
Padding |
Внутренний отступ |
border |
BorderOptions |
Край (с закруглёнными углами) |
backgroundColor |
ResourceColor |
Цвет фона содержимого |
fontSize |
number или string или Resource |
Размер шрифта заголовка |
fontColor |
ResourceColor |
Цвет шрифта заголовка |
fontWeight |
number или FontWeight или string |
Толщина шрифта |
titlePadding |
Padding |
Внутренний отступ области заголовка |
messageFontSize |
number или string или Resource |
Размер шрифта содержимого |
messageFontWeight |
number или FontWeight или string |
Толщина шрифта содержимого |
messagePadding |
Padding |
Внутренний отступ области содержимого |
buttonsUseVerticalLayoutCount |
number |
Количество кнопок для использования вертикального расположения. По умолчанию, если количество меньше этого значения, используется горизонтальное расположение (Row), если больше или равно, используется вертикальное расположение (Column) |
buttonVerticalSpacing |
string или number |
Вертикальное расстояние между кнопками |
buttonHorizontalSpacing |
string или number |
Горизонтальное расстояние между кнопками |
DialogButton
свойства)| Свойство | Тип | Описание ||------------|-------------------------------------------|------------------------------------|
| name
| string
| Текстовое имя кнопки |
| style?
| DialogButtonStyle
| Стиль кнопки, опционально |
| onClick?
| (controller?: DialogController) => void
| Обратный вызов при нажатии кнопки, может принимать опциональный параметр типа DialogController
, опционально |
DialogButtonStyle
)Свойство | Тип | Описание |
---|---|---|
height |
Length |
Высота кнопки |
fontSize |
number или string или Resource |
Размер шрифта текста, поддерживает числа, строки или ссылки на ресурсы |
fontColor |
ResourceColor |
Цвет текста, определяется через ресурс |
fontWeight |
number или FontWeight или string |
Толщина шрифта текста |
backgroundColor |
ResourceColor |
Цвет фона кнопки |
border |
BorderOptions |
Стиль границы кнопки |
|-------------------------|-----------------------------------------------------------------------------------------------------------------------------|----------|
| HPTBottomSheetUtil.show | component: Object текущей this страницы
info: BottomSheetInfo содержимое диалогового окна, включая title, contentList и т.д.
config?: BottomSheetConfig стили диалогового окна | Отображение нижнего диалогового окна |#### BottomSheetInfo
свойства (свойства содержимого диалогового окна)| Атрибут | Тип | Описание |
|-------------------------------|--------------------------------|--------------------------------------------------------------------|
| title
| ResourceStr
| Заголовок нижнего всплывающего окна |
| contentList
| ResourceStr[]
| Содержимое, отображаемое в виде списка, по умолчанию не предоставляется |
| selectedIndex
| number
| Индекс выбранной строки по умолчанию |
| customContent
| CustomBuilder
| Пользовательское содержимое, используемое для перезаписи поля contentList
|
| cancel
| ResourceStr
| Текст кнопки "Отмена", по умолчанию "Отмена" |
| disableShowCancel
| boolean
| Запретить отображение кнопки "Отмена", по умолчанию не запрещено |
| cancelOnClick
| (controller? ) => void
| Обратный вызов при нажатии на кнопку "Отмена", принимает необязательный параметр DialogController
для управления логикой закрытия всплывающего окна |
| confirmOnClick
| (index, controller? ) => void
| Обратный вызов при выборе строки, принимает индекс строки index
и необязательный параметр DialogController
для выполнения соответствующих действий и управления логикой закрытия всплывающего окна || disableClickButtonAutoClose
| boolean
| Запретить автоматическое закрытие всплывающего окна при нажатии на кнопку, по умолчанию автоматическое закрытие включено |
| cancelCallBack
| () => void
| Обратный вызов при отмене всплывающего окна, связан с нажатием на кнопку "Отмена" или другими действиями отмены |
BottomSheetConfig
свойства (описывают стиль всплывающего окна)| Свойство | Тип | Описание ||-------------------------------|--------------------------------|------------------------|
| backgroundColor
| ResourceColor
| Цвет фона всплывающего окна |
| borderRadius
| number
| Радиус закругления нижней части всплывающего окна |
| maxListHeight
| number
| Максимальная высота всплывающего окна в режиме списка |
| itemHeight
| number
| Высота каждого элемента списка |
| itemBackgroundColor
| ResourceColor
| Цвет фона элемента списка |
| itemSelectedBackgroundColor
| ResourceColor
| Цвет фона выбранного элемента списка |
| dividerColor
| ResourceColor
| Цвет разделительной линии |
| dividerHeight
| Length
| Высота разделительной линии |
| cancelSpace
| Length
| Расстояние между кнопкой отмены и другими элементами |
| cancelHeight
| Length
| Высота кнопки отмены |
| titleAlign
| TextAlign
| Выравнивание заголовка |
| titlePadding
| Padding
| Внутренние отступы заголовка |
| titleFontSize
| number или string или Resource
| Размер шрифта заголовка |
| titleFontColor
| ResourceColor
| Цвет шрифта заголовка |
| titleFontWeight
| number или FontWeight или string
| Толщина шрифта заголовка |
| fontSize
| number или string или Resource
| Размер шрифта текста |
| fontColor
| ResourceColor
| Цвет текста |
| fontWeight
| number или FontWeight или string
| Толщина шрифта текста |# Изменение глобальных значений по умолчанию
HPTDialogUtil.defaultConfig.titlePadding = { bottom: 24 }
HPTDialogUtil.defaultConfig.fontSize = $r("app.float.h3")
HPTDialogUtil.defaultConfig.fontColor = $r("app.color.mainText")
HPTDialogUtil.defaultConfig.messageFontSize = 12
HPTDialogUtil.defaultConfig.messageFontColor = Color.Red
```// BottomSheet
HPTBottomSheetUtil.defaultConfig.itemSelectedBackgroundColor = $r("app.color.primary")
HPTDialogUtil.show(this, {
title: 'Подтвердите выход из системы?',
cancel: "Отмена",
message: "Выход из системы, описание xxxx",
confirm: "Подтвердить выход",
confirmOnClick: () => {
// Выполнить логику выхода из системы
}
})
HPTDialogUtil.show(this, {
title: 'Подтвердите выход из системы?',
cancel: "Отмена",
confirm: "Подтвердить выход",
messageContent: () => this.buildItem("Выход из системы, описание xxxx", () => {
}),
confirmOnClick: () => {
}
})
HPTBottomSheetUtil.show(this, {
contentList: ['Заварить', 'Не заваривать', 'Выбирать каждый раз'],
disableShowTitle: true
})
this
должен быть текущим компонентом @Component
. Если вызов диалогового окна происходит в логической части кода, необходимо передать текущий this
компонента в логическую функцию. В противном случае диалоговое окно может не отображаться корректно.# Структура проекта
hptdialog
├── src
│ ├── main
│ │ ├── ets
│ │ │ └── components
│ │ │ └── dialog
│ │ │ └── Dialog.ets
│ │ │ └── Config.ets
│ │ │ └── bottomsheet
│ │ │ └── BottomSheet.ets
│ │ │ └── Config.ets
│ │ │ └── DialogController.ets
│ │ └── resources
└──
```# Адрес проекта
[Репозиторий](https://gitee.com/iJianbao/gancao-hptdialog.git)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )