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

OSCHINA-MIRROR/HarmonyOS-tpc-material-dialogs

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

MaterialDialogs

Введение

Material Dialog — это комбинация различных типов диалогов, поддерживаемых openharmony API. Он содержит почти все компоненты пользовательского интерфейса с несколькими тестовыми примерами, включая диалоги с текстом, изображением, кнопками, элементами ListContainer, цветовой палитрой, пользовательскими представлениями и индикатором выполнения.

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

Core Модуль Core содержит всё необходимое для начала работы с библиотекой. В нём есть все основные функции и функции для нормального использования. dependencies { ... implementation 'com.afollestad.material-dialogs:core:3.2.1' }

  • Основы Вот очень простой пример создания и отображения диалога:

      new MaterialDialog.Builder(this)
        .content(ResourceTable.String_shareLocationPrompt)
        .positiveText(ResourceTable.String_agree)
        .negativeText(ResourceTable.String_disagree)
        .show();

    this должен быть Context, который привязан к окну, например, Ability.

  • Кнопки действий Есть простые методы добавления кнопок действий:

      new MaterialDialog.Builder(this)
         .title(ResourceTable.String_useGoogleLocationServices)
         .content(ResourceTable.String_useGoogleLocationServicesPrompt)
         .positiveText(ResourceTable.String_agree)
         .negativeText(ResourceTable.String_disagree)
         .show();

    Если кнопки действий слишком длинные, чтобы поместиться в ширину диалога, они будут автоматически сложены:

  • Добавление значка Вы можете отобразить значок слева от заголовка:

      new MaterialDialog.Builder(this)
        .icon(ResourceTable.Media_ic_launcher)
        .limitIconToDefaultSize()
        .title(ResourceTable.String_useGoogleLocationServices)
        .content(ResourceTable.String_useGoogleLocationServicesPrompt)
        .positiveText(ResourceTable.String_agree)
        .negativeText(ResourceTable.String_disagree)
        .show();
  • Обратные вызовы Существует несколько обратных вызовов жизненного цикла, которые вы можете подключить: new MaterialDialog.Builder(this) .title(ResourceTable.String_useGoogleLocationServices) .content(ResourceTable.String_useGoogleLocationServicesPrompt) .positiveText(ResourceTable.String_agree) .negativeText(ResourceTable.String_disagree) .neutralText(ResourceTable.String_more_info) .showListener(dialog -> showToast("onShow")) .cancelListener(dialog -> showToast("onCancel")) .dismissListener(dialog -> showToast("onDismiss")) .show();

Список Тестовые случаи списка имеют несколько тестовых случаев, включающих одиночный и множественный выбор.

  • Простой Можно показывать списки, используя расширение listItems на MaterialDialog:

      new MaterialDialog.Builder(this)
          .title(ResourceTable.String_socialNetworks)
          .items(new String[]{"Twitter", "Google", "Instagram", "Facebook"})
          .itemsCallback((dialog, view, which, text) -> showToast(which + ": " + text))
          .show();
  • Одиночный выбор Можно показывать одиночный выбор (радиокнопку), используя расширение listItemsSingleChoice на MaterialDialog:

     new MaterialDialog.Builder(this)
         .title(ResourceTable.String_socialNetworks)
         .items(new String[]{"Twitter", "Google", "Instagram", "Facebook"})
         .itemsDisabledIndices(1, 3) **Элементы CallbackSingleChoice (2)**

    showToast(which + ": " + text); return true; // разрешить выбор

Множественный выбор

Вы можете отобразить списки с множественным выбором (флажки), используя расширение listItemsMultiChoice для MaterialDialog:

new MaterialDialog.Builder(this) .title(ResourceTable.String_socialNetworks) .items(new String[]{"Twitter", "Google", "Instagram", "Facebook"}) .itemsCallbackMultiChoice( new Integer[]{1, 3}, (dialog, which, text) -> { StringBuilder str = new StringBuilder(); for (int i = 0; i < which.length; i++) { if (i > 0) { str.append('\n'); } str.append(which[i]); str.append(": "); str.append(text[i]); } showToast(str.toString()); return true; // разрешить выбор }) .onNeutral((dialog, which) -> dialog.clearSelectedIndices(true)) .onPositive((dialog, which) -> dialog.hide()) .alwaysCallMultiChoiceCallback() .positiveText(ResourceTable.String_md_choose_label) .autoDismiss(false) .neutralText(ResourceTable.String_clear_selection) .show();

Пользовательские адаптеры

Если вы хотите настроить списки для использования собственных представлений, вам необходимо использовать пользовательский адаптер.

final ButtonItemAdapter buttonItemAdapter = new ButtonItemAdapter(this, new String[]{"Twitter", "Google", "Instagram", "Facebook"}); buttonItemAdapter.setCallbacks( itemIndex -> showToast("Элемент нажат: " + itemIndex), buttonIndex -> showToast("Кнопка нажата: " + buttonIndex)); new MaterialDialog.Builder(this).title(ResourceTable.String_socialNetworks).baseItemProvider(buttonItemAdapter).show();

Флажки в запросах

Флажки можно использовать вместе с любым другим типом диалога, они отображаются в том же представлении, где показаны кнопки действий.

new MaterialDialog.Builder(this) .icon(ResourceTable.Media_ic_launcher) .limitIconToDefaultSize() .title(ResourceTable.String_permissionSample) .positiveText(ResourceTable.String_allow) .negativeText(ResourceTable.String_deny) .onAny((dialog, which) -> showToast("Флажок установлен? " + dialog.isPromptCheckBoxChecked())) .checkBoxPrompt(ResourceTable.String_dont_ask_again, false, new AbsButton.CheckedStateChangedListener() { @Override public void onCheckedChanged(AbsButton absButton, boolean checked) { if (checked) { setAbsButtonBackgroundElement(absButton, ResourceTable.Media_abc_btn_check_to_on_mtrl_015); } else { setAbsButtonBackgroundElement(absButton, ResourceTable.Media_abc_btn_check_to_on_mtrl_000); } } }) .show();

Пользовательские представления

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

Прогресс

В этом модуле у нас есть тестовый случай progressbar с выполнением горизонтального и кругового progressbar.

Ввод

Модуль ввода содержит расширения к основному модулю, такие как текстовый ввод.

Цвет

Модуль цвета содержит расширения к основному модулю. Выбор цвета

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

  • Основы Выбор цвета показывает простую сетку цветов.

    new ColorChooserDialog.Builder(this, ResourceTable.String_color_palette) .titleSub(ResourceTable.String_colors) .preselect(primaryPreselect) .show();

  • Дополнительные цвета Можно указать дополнительные цвета, которые находятся на уровень ниже каждого основного цвета. Размер массива основных цветов должен соответствовать размеру массива дополнительных цветов.

  • Выбор ARGB

DateTime Модуль datetime содержит расширения для создания диалоговых окон выбора даты, времени и даты-времени.

MaterialDialog dialog = new MaterialDialog.Builder(this)
    .title(ResourceTable.String_date_picker)
    .customView(ResourceTable.Layout_dialog_datepicker, false)
    .positiveText(ResourceTable.String_ok)
    .negativeText(ResourceTable.String_cancel)
    .build();

DatePicker datePicker = (DatePicker) dialog.getCustomView().findComponentById(ResourceTable.Id_datePicker);
datePicker.setDateOrder(DatePicker.DateOrder.DMY);
dialog.show();

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

new FolderChooserDialog.Builder(this)
    .chooseButton(ResourceTable.String_md_choose_label)
    .allowNewFolder(true, 0)
    .show();

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

Способ 1: Сгенерируйте пакет .har через библиотеку и добавьте пакет .har в папку libs. Добавьте следующий код в начальный gradle: implementation fileTree (dir: 'libs', include: ['.jar', '.har'])

Способ 2: allprojects{ repositories{ mavenCentral() } } implementation 'io.openharmony.tpc.thirdlib:material-dialogs:1.0.2'

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-material-dialogs.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-material-dialogs.git
oschina-mirror
HarmonyOS-tpc-material-dialogs
HarmonyOS-tpc-material-dialogs
main