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

OSCHINA-MIRROR/geekharmony-hmosapp1

Клонировать/Скачать
README4.md 9.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.06.2025 17:52 d53c9aa

подсказка-диалог

Введение

Каждый проект требует стандартного «Подсказочного диалогового окна». Основные характеристики: простота использования, поддержка различных стилей кастомизации, поддержка отображения текста и веб-страниц.

gif-демонстрация

Инструкции по установке

ohpm install @qincji/dialog

Инструкции по использованию

  1. Импортируйте необходимые файлы
import { HintDialog, xxx } from '@qincji/dialog';
  1. Вставьте инициализацию в узел build страницы @Entry.
  build() {
    Row() {
      HintDialog() // Это пустая структура
      ...
    }
  }

Основная страница: обычно требуется инициализация только один раз в MainPage.ets, но она должна быть обязательно присутствовать. При переходе на другие страницы с помощью роутера повторная инициализация не требуется.

  1. Открытие
HintDialog.open(hintParm: HintParm)

Пример 1:

HintDialog.open({
    content: 'Это содержимое, использующее стандартный заголовок.',
    showNo: false,
    onOk: () => {
    }
})

Пример 2:

HintDialog.open({
    title: 'Одиночное кнопочное диалоговое окно',
    content: 'Одна кнопка, изменение заголовка.',
    showNo: false,
    okMsg: 'Хорошо, я понял',
    onOk: () => {
    }
})

Пример 3:

HintDialog.open({
  title: 'Web-диалоговое окно',
  isWebType: true,
  content: 'https://gitee.com/qincji/hint-dialog',
  onNo: () => {
  }
})
Параметры HintParm

gif-демонстрация#### Инструкции по установке

ohpm install @qincji/dialog

Инструкции по использованию

  1. Импортируйте необходимые файлы
import { HintDialog, xxx } from '@qincji/dialog';
  1. Вставьте инициализацию в узел build страницы @Entry.
  build() {
    Row() {
      HintDialog() // Это пустая структура
      ...
    }
  }

Основная страница: обычно требуется инициализация только один раз в MainPage.ets, но она должна быть обязательно присутствовать. При переходе на другие страницы с помощью роутера повторная инициализация не требуется.

  1. Открытие
HintDialog.open(hintParm: HintParm)

Пример 1:

HintDialog.open({
    content: 'Это содержимое, использующее стандартный заголовок.',
    showNo: false,
    onOk: () => {
    }
})

Пример 2:

HintDialog.open({
    title: 'Одиночное кнопочное диалоговое окно',
    content: 'Одна кнопка, изменение заголовка.',
    showNo: false,
    okMsg: 'Хорошо, я понял',
    onOk: () => {
    }
})

Пример 3:

HintDialog.open({
  title: 'Web-диалоговое окно',
  isWebType: true,
  content: 'https://gitee.com/qincji/hint-dialog',
  onNo: () => {
  }
})
```##### Параметры HintParm| Поле            | Тип                 | Описание                                                                   |
 |---------------|--------------------|----------------------------------------------------------------------|
 | content       | string             | Отображаемый контент, который зависит от isWebType (отображает веб или текст). Если значение пустое или неопределено, используется значение из HintStyle.         |
 | title         | string?             | Заголовок, по умолчанию: "Внимание"                                                         |
 | noMsg         | string?             | Текст кнопки "Отмена", по умолчанию: "Отмена"                                                      |
 | okMsg         | string?             | Текст кнопки "Ок", по умолчанию: "Ок"                                                      |
 | showNo        | boolean?            | Необходимость отображения кнопки "Отмена", по умолчанию: true                                                   |
 | isWebType     | boolean?            | Тип веб, по умолчанию: false                                                    |
 | controller    | WebviewController?  | Контроллер веб, действует только если isWebType равен true.                                             |
 | outsideCancel | boolean?            | Может ли отмена быть выполнена при клике вне области, по умолчанию: true. Потому что система не поддерживает перехват @CustomDialog, поэтому отмена воспринимается как клик по кнопке "Отмена".  |
 | onNo          | () => void?         | Коллбэк при клике по кнопке "Отмена"                                                            |
 | onOk          | () => void?         | Коллбэк при клике по кнопке "Ок"                                                            |
 | alignment     | DialogAlignment?    | Выравнивание, по умолчанию: по центру.   |                                                            |> Примечание: string? : передача не обязательна.4. Закрытие (необязательно)

HintDialog.close()


5. Глобальная пользовательская стилизация (необязательно)

HintDialog.initDefaultStyle(hintStyle: HintStyle)


Пример:

const titleAttr: AttributeModifier = { applyNormalAttribute(instance: TextAttribute): void { instance.fontColor('#ff1145e5').fontWeight(FontWeight.Bolder).fontSize(25) } }; const outBoxAttr: AttributeModifier = { applyNormalAttribute(instance: ColumnAttribute): void { instance.backgroundColor('#ffc8f1b3').borderRadius(5).margin(50) } }; HintDialog.initDefaultStyle({ titleParm: new TitleParm('По умолчанию подсказка', titleAttr), outBoxAttr: outBoxAttr })


##### Параметры стиля подсказки| Поле            | Тип                                  | Описание                                                                   |
|---------------|-------------------------------------|----------------------------------------------------------------------|
| isWebType     | boolean?                            | Является ли веб-типом, по умолчанию: false                                                    |
| outsideCancel | boolean?                            | Может ли отмена быть выполнена при клике вне области, по умолчанию true. Потому что система не поддерживает перехват @CustomDialog клавиш, поэтому это рассматривается как клик пользователя на "Отмена" |
| alignment     | DialogAlignment?                    | Выравнивание, по умолчанию центральное.                                                             |
| titleParm     | TitleParm?                          | Установка содержимого и стиля заголовка, по умолчанию заголовок "Внимание"                                                 |
| textParm      | TextParm?                           | Стили загрузки текста                                                          |
| webParm       | WebParm?                            | Стили загрузки веб-контента                                                           |
| btnParm       | BtnParm?                            | Стили и содержимое кнопок внизу                                                           |
| outBoxAttr    | AttributeModifier<ColumnAttribute>? | Стили внешнего UI, через этот параметр можно установить цвет фона, радиус закругления, отступ от экрана и т.д. для диалогового окна.                                |

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/geekharmony-hmosapp1.git
git@api.gitlife.ru:oschina-mirror/geekharmony-hmosapp1.git
oschina-mirror
geekharmony-hmosapp1
geekharmony-hmosapp1
master