Данный текст написан на языке Java.
LovelyDialog
Данная библиотека представляет собой набор простых классов-оболочек для диалоговых окон, которые призваны помочь вам легко создавать красивые диалоговые окна.
Каждое диалоговое окно имеет цветную верхнюю часть, значок, заголовок и сообщение, а также свою функцию. Всего существует 6 типов диалоговых окон:
Здесь вы можете установить положительные, отрицательные и нейтральные кнопки. Можно настроить прослушиватель для каждой кнопки отдельно, для трёх кнопок — один общий прослушиватель или не устанавливать прослушиватели вообще (в этом случае нажатие на любую кнопку в любом диалоговом окне будет закрывать его).
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();
Диалоговое окно, которое показывает информацию пользователю. Содержимое можно прокручивать. Есть опция, которая позволяет скрыть флажок. Если она выбрана, то в следующий раз это диалоговое окно не будет вызываться. Это может быть полезно, например, при отображении некоторых инструкций.
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();
Вы можете использовать одно- или многопозиционные диалоговые окна. В случае с многопозиционным диалогом появляется кнопка подтверждения. Вы можете передавать проекты в виде массива, списка (для отображения элементов как простого текста будет использоваться метод .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();
Диалог с 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();
С помощью 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 )