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

OSCHINA-MIRROR/HarmonyOS-tpc-LovelyDialog

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

Данный текст написан на языке Java.

LovelyDialog

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

Типы диалогов

Каждое диалоговое окно имеет цветную верхнюю часть, значок, заголовок и сообщение, а также свою функцию. Всего существует 6 типов диалоговых окон:

LovelyStandardDialog

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

new LovelyStandardDialog(this, LovelyStandardDialog.ButtonLayout.VERTICAL)
        .setTopColorRes(ResourceTable.Color_indigo)
        .setButtonsColorRes(ResourceTable.Color_darkDeepOrange)
        .setIcon(ResourceTable.Media_ic_star_border_white_36dp)
        .setTitle(ResourceTable.String_rate_title)
        .setInstanceStateHandler(ID_STANDARD_DIALOG, saveStateHandler)
        .setSavedInstanceState(savedInstanceState)
        .setMessage(ResourceTable.String_rate_message)
        .setPositiveButton(ResourceTable.String_ok, LovelyDialogCompat.wrap(
                (dialog, which) ->
                        new ToastDialog(getContext()).setContentCustomComponent(showToast(ResUtil.getString(getContext(), ResourceTable.String_repo_waiting))).show()))
        .setNeutralButton(ResourceTable.String_later, null)
        .setNegativeButton(ResourceTable.String_no, null)
        .show();

LovelyInfoDialog

Диалоговое окно, которое показывает информацию пользователю. Содержимое можно прокручивать. Есть опция, которая позволяет скрыть флажок. Если она выбрана, то в следующий раз это диалоговое окно не будет вызываться. Это может быть полезно, например, при отображении некоторых инструкций.

new LovelyInfoDialog(this)
        .setTopColorRes(ResourceTable.Color_darkBlueGrey)
        .setIcon(ResourceTable.Media_ic_info_outline_white_36dp)
        .setInstanceStateHandler(ID_INFO_DIALOG, saveStateHandler)
        .setNotShowAgainOptionEnabled(0)
        .setNotShowAgainOptionChecked(true)
        .setSavedInstanceState(savedInstanceState)
        .setTitle(ResourceTable.String_info_title)
        .setMessage(ResourceTable.String_info_message)
        .show();

LovelyChoiceDialog

Вы можете использовать одно- или многопозиционные диалоговые окна. В случае с многопозиционным диалогом появляется кнопка подтверждения. Вы можете передавать проекты в виде массива, списка (для отображения элементов как простого текста будет использоваться метод .toString()) или предоставить свой собственный адаптер.

Однопозиционный
List<DonationOption> list = loadDonationOptions();
DonationAdapter adapter = new DonationAdapter(this, loadDonationOptions());
new LovelyChoiceDialog(this)
        .setTopColorRes(ResourceTable.Color_darkGreen)
        .setTitle(ResourceTable.String_donate_title)
        .setInstanceStateHandler(ID_SINGLE_CHOICE_DIALOG, saveStateHandler)
        .setIcon(ResourceTable.Media_ic_local_atm_white_36dp)
        .setMessage(ResourceTable.String_donate_message)
        .setItems(adapter, (position, item) ->
                new ToastDialog(getContext()).setContentCustomComponent(showToast(String.format(getString(ResourceTable.String_you_donated), list.get(position).amount))).show()
        )
        .setSavedInstanceState(savedInstanceState)
        .show();
Многопозиционный
String[] items = new String[]{"Pizza", "Noodles", "Hamburger", "Pasta"};
new LovelyChoiceDialog(this, ResourceTable.Pattern_base)
        .setTopColorRes(ResourceTable.Color_darkRed)
        .setTitle(ResourceTable.String_order_food_title)
        .setIcon(ResourceTable.Media_ic_food_white_36dp)
        .setInstanceStateHandler(ID_MULTI_CHOICE_DIALOG, saveStateHandler)
        .setItemsMultiChoice(items, (positions, items1) ->
                new ToastDialog(getContext()).setContentCustomComponent(showToast(String.format(getString(ResourceTable.String_you_ordered), join("\n", items1)))).show()

        )
        .setSavedInstanceState(savedInstanceState)
        .show();

LovelyTextInputDialog

Диалог с EditText и кнопкой подтверждения. Вы можете настроить объект TextFilter, чтобы указать допустимые входные данные.

new LovelyTextInputDialog(this)
        .setTopColorRes(ResourceTable.Color_darkDeepOrange)
        .setTitle(ResourceTable.String_text_input_title)
        .setMessage(ResourceTable.String_text_input_message)
        .setIcon(ResourceTable.Media_ic_assignment_white_36dp) **LovelyProgressDialog**

Диалоговое окно, похожее на стандартное диалоговое окно openharmony ProgressBar. По умолчанию его нельзя отменить.

```java
new LovelyProgressDialog(this)
        .setTopColorRes(ResourceTable.Color_teal)
        .setIcon(ResourceTable.Media_ic_cast_connected_white_36dp)
        .setTitle(ResourceTable.String_connecting_to_server)
        .setInstanceStateHandler(ID_PROGRESS_DIALOG, saveStateHandler)
        .setSavedInstanceState(savedInstanceState)
        .setCancelable(true)
        .show();

LovelyCustomDialog

Здесь вы можете передать своё собственное представление для отображения. Заголовок, сообщение, цвет заголовка и значок по-прежнему будут доступны. Вы можете предоставить конфигуратор, прослушиватель кликов и обработчик сохранения состояния экземпляра.

new LovelyCustomDialog(this)
      .setView(R.layout.item_donate_option)
      .setTopColorRes(R.color.darkDeepOrange)
      .setTitle(R.string.text_input_title)
      .setMessage(R.string.text_input_message)
      .setIcon(R.drawable.ic_assignment_white_36dp)
      .configureView(/* ... */)
      .setListener(R.id.ld_btn_yes, /* ... */)
      .setInstanceStateManager(/* ... */)
      .show();

Требования к запуску entry

С помощью DevEco studio загрузите openharmonySDK. В файле build.gradle в разделе dependencies → classpath измените версию на соответствующую версию (то есть версию, которую вы используете при создании нового проекта в вашей текущей IDE).

Интеграция

allprojects{ repositories{ mavenCentral() } } implementation 'io.openharmony.tpc.thirdlib:LovelyDialog:1.0.3'

Лицензия

Copyright 2016 Yaroslav Shevchuk

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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

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

Введение

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

Обновления

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

Участники

все

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

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