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

OSCHINA-MIRROR/HarmonyOS-tpc-Alerter

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать

A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

Permissions
  • Commercial use
  • Modification
  • Distribution
  • Private use
Limitations
  • Liability
  • Warranty
Conditions
  • License and copyright notice
README.md 32 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 12.03.2025 05:00 5b89072

Библиотека уведомлений

Общие сведения

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

Описание

  • Поддерживает основные функции, но анимация менее качественная по сравнению с оригинальной компонентой. Здесь используется стиль HarmonyOS для модификации.
  • Настройки входящей и исходящей анимации недоступны.
  • Поддерживаются форматы медиафайлов: изображения — png, jpg; аудио — mp3.

Демонстрация

Интеграция

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

Метод 2:
allprojects {
    repositories {
        mavenCentral()
    }
}
implementation 'io.openharmony.tpc.thirdlib:Alerter:1.0.0'

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

Запустите проект через DevEco Studio и скачайте SDK. Измените версию dependencies → classpath в файле build.gradle проекта на соответствующую версии вашего IDE.

Пример использования

javamarkdown Button btnDefault = (Button) findComponentById(ResourceTable.Id_btn_alert1); btnDefault.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { Alerter.create(MainAbilitySlice.this, componentContainer) .setEnableIconAnim(true) .setTitle("Уведомление") .setText("Текст уведомления...") .show(); } });

                        <!-- Клик событие -->
                        Button btnOnClick = (Button) findComponentById(ResourceTable.Id_btn_alert2);
                        btnOnClick.setClickedListener(new Component.ClickedListener() {
                            @Override
                            public void onClick(Component component) {
                                Alerter.create(MainAbilitySlice.this, componentContainer)
                                        .setEnableIconAnim(true)
                                        .setTitle("Alert Title")
                                        .setText("Alert text...")
                                        .setDuration(10000)
                                        .setOnClickListener(new Component.ClickedListener() {
                                            @Override
                                            public void onClick(Component component) {
                                                new ToastDialog(getContext()).setText("CLICK").show();
                                            }
                                        })
                                        .show();
                            }
                        });
```
```markdown
### Самопроизвольные иконки
Кнопка `btnCustomIcon` ищется по ID `ResourceTable.Id_btn_alert3`.
```java
Button btnCustomIcon = (Button) findComponentById(ResourceTable.Id_btn_alert3);
btnCustomIcon.setClickedListener(new Component.ClickedListener() {
    @Override
    public void onClick(Component component) {
        try {
            Alerter.```markdown
create(MainAbilitySlice.this, componentContainer)
   .setCustomLeftIconBig(ResourceTable.Media_custom_icon_big)
   .setCustomLeftIconSmall(ResourceTable.Media_custom_icon_small)
   .setEnableCustomLeftIconAnim(true)
   .setEnableIconAnim(true)
   .setTitle("Предупреждающее сообщение: Заголовок")
   .setText("Текст предупреждения...")
   .setIconSize(500)
   .show();
} catch (Exception e) {
```

Здесь текст внутри метода `setTitle` и `setText` был переведён на русский язык, остальные части кода оставлены без изменений.Код не требует перевода, поскольку он представляет собой программный скрипт, который остается без изменений согласно правилам перевода. 

Оставлено без изменений:

```
}
});

```### Самопроизвольный фоновый цвет
Кнопка `btnBackGround` ищется по ID `ResourceTable.Id_btn_alert4`.
```java
Button btnBackGround = (Button) findComponentById(ResourceTable.Id_btn_alert4);
btnBackGround.setClickedListener(new Component.ClickedListener() {
   @Override
   public void onClick(Component component) {
       Alerter.create(MainAbilitySlice.this, componentContainer)
               .setEnableIconAnim(true)
               .setTitle("Alert Title")
               .setText("Alert text. . . ")
               .setDuration(5000)
               .setBackgroundColorInt(0xffF99143)
               .show();
   }
});
```
``````markdown
                        <!--Прогресс-->
                        Button btnProgress = (Button) findComponentById(ResourceTable.Id_btn_alert5);
                        btnProgress.setClickedListener(new Component.ClickedListener() {
                            @Override
                            public void onClick(Component component) {
                                Alerter.create(MainAbilitySlice.this, componentContainer)
                                        .setTitle("Заголовок уведомления")
                                        .setText("Текст уведомления. . . ")
                                        .setDuration(5000)
                                        .enableProgress(true)
                //                        .setProgressColorInt(0xff2c9cac)
                                        .show();
                            }
                        });
``````markdown
                        //шрифт
                        Button btnШРИФТ = (Button) findComponentById(ResourceTable.Id_btn_alert6);
                        btnШРИФТ.setClickedListener(new Component.ClickedListener() {
                            @Override
                            public void onClick(Component component) {
                                copyTTF();
                                Alert alert = Alerter.create(MainAbilitySlice.this, componentContainer)
                                        .setEnableIconAnim(true)
                                        .setTitle("Заголовок алерта")
                                        .setText("Текст алерта. . . ")
                                        .setDuration(5000)
                                        .show();
                            }
                        });
```markdown
### Callback
Кнопка `btnCallback` инициализируется следующим образом:

```java
Button btnCallback = (Button) findComponentById(ResourceTable.Id_btn_alert7);
btnCallback.setClickedListener(new Component.ClickedListener() {
   @Override
   public void onClick(Component component) {
       Alerter.create(MainAbilitySlice.this, componentContainer)
               .setEnableIconAnim(true)
               .setTitle("Alert Title")
               .setText("Alert text. . . ")
               .setDuration(5000)
               .setOnShowListener(new OnShowAlertListener() {
                   @Override
                   public void onShow() {
                       new ToastDialog(getContext()).setText("show").show();
                   }
               })
               .setOnHideListener(new OnHideAlertListener() {
                   @Override
                   public void onHide() {
                       new ToastDialog(getContext()).setText("hide").show();
                   }
               })
               .show();
   }
});
```

```markdown
## Обратный вызов
Кнопка `btnCallback` инициализируется следующим образом:

```java
Button btnCallback = (Button) findComponentById(ResourceTable.Id_btn_alert7);
btnCallback.setClickedListener(new Component.ClickedListener() {
   @Override
   public void onClick(Component component) {
       Alerter.create(MainAbilitySlice.this, componentContainer)
               .setEnableIconAnim(true)
               .setTitle("Alert Title")
               .setText("Alert text. . . ")
               .setDuration(5000)
               .setOnShowListener(new OnShowAlertListener() {
                   @Override
                   public void onShow() {
                       new ToastDialog(getContext()).setText("show").show();
                   }
               })
               .setOnHideListener(new OnHideAlertListener() {
                   @Override
                   public void onHide() {
                       new ToastDialog(getContext()).setText("hide").show();
                   }
               })
               .show();
   }
});
```
``````markdown
                       // Добавление кнопки
                       Button btnAddButton = (Button) findComponentById(ResourceTable.Id_btn_alert8);
                       btnAddButton.setClickedListener(new Component.ClickedListener() {
                           @Override
                           public void onClick(Component component) {
                               Alerter.create(MainAbilitySlice.this, componentContainer)
                                       .setEnableIconAnim(true)
                                       .setTitle("Заголовок уведомления")
                                       .setText("Текст уведомления...")
                                       .setDuration(5000)
                                       .addButton("ДА", 0xffffffff, 0xffF99143, 200, 60, new Component.ClickedListener() {
                                           @Override
                                           public void onClick(Component component) {
                                               new ToastDialog(getContext()).setText("да").show();
                                           }
                                       })
                                       .addButton("НЕТ", 0xffffffff, 0xffF99143, 200, 60, new Component.ClickedListener() {
                                           @Override
                                           public void onClick(Component component) {
                                               new ToastDialog(getContext()).setText("нет").show();
                                           }
                                       })
                                       .show();
                           }
                       });
``````markdown
                       <!-- Подробный -->
                       Кнопка btnVerbose = (Кнопка) findComponentById(ResourceTable.Id_btn_alert10);
                       btnVerbose.setClickedListener(новый Component.ClickedListener() {
                           @Переопределение
                           публичный void onClick(Component component) {
                               Alerter.create(MainAbilitySlice.this, componentContainer)
                                       .setEnableIconAnim(истинно)
                                       .setTitle("Заголовок уведомления")
                                       .setText("Уведомление масштабируется для размещения больших объемов текста. Уведомление масштабируется для размещения больших объемов текста. Уведомление масштабируется для размещения больших объемов текста.")
                                       .show();
                           }
                       });
```                        // Центральное уведомление
                       Кнопка btnCenter = (Кнопка) findComponentById(ResourceTable.Id_btn_alert11);
                       btnCenter.setClickedListener(новый Component.ClickedListener() {
                           @Переопределение
                           публичный void onClick(Component component) {
                               Alerter.create(MainAbilitySlice.this, componentContainer)
                                       .setEnableIconAnim(истинно)
                                       .setTitle("Центральное уведомление")
                                       .setText("Текст центрального уведомления...")
                                       .setContentGravity(DependentLayout.LayoutConfig.CENTER_IN_PARENT)
                                       .показать();
                           }
                       });```markdown
                        <!-- Вывод нижнего модального окна -->
                        Button btnBottom = (Button) findComponentById(ResourceTable.Id_btn_alert12);
                        btnBottom.setClickedListener(new Component.ClickedListener() {
                            @Переопределение
                            public void onClick(Component component) {
                                Alerter.create(MainAbilitySlice.this, componentContainer)
                                        .setEnableIconAnim(true)
                                        .setTitle("Заголовок уведомления")
                                        .setText("Текст уведомления...")
                                        .setContentGravity(DependentLayout.LayoutConfig.ALIGN_PARENT_BOTTOM)
                                        .show();
                            }
                        });
                        
                        // Вариант с правым значком в диалоге
                        Button btnWithRightIcon = (Button) findComponentById(ResourceTable.Id_btn_alert13);
                        btnWithRightIcon.setClickedListener(new Component.ClickedListener() {
                            @Переопределение
                            public void onClick(Component component) {
                                Alerter.create(MainAbilitySlice.this, componentContainer)
                                        .setCustomRightIconBig(ResourceTable.Media_custom_icon_big)
                                        .setCustomRightIconSmall(ResourceTable.Media_custom_icon_small)
                                        .setEnableCustomRightIconAnim(true)
                                        .setEnableRightIcon(true)
                                        .setEnableIconAnim(true)
                                        .setTitle("Заголовок уведомления")
                                        .setText("Текст уведомления...")
```
```markdown
                                       .show();
                            }
                        };
``````java
                       // Только правый значок в диалоге
                       Button btnOnlyRightIcon = (Button) findComponentById(ResourceTable.Id_btn_alert14);
                       btnOnlyRightIcon.setClickedListener(new Component.ClickedListener() {
                           @Override
                           public void onClick(Component component) {
                               Alerter.create(MainAbilitySlice.this, componentContainer)
                                       .setCustomRightIconBig(ResourceTable.Media_custom_icon_big)
                                       .setCustomRightIconSmall(ResourceTable.Media_custom_icon_small)
                                       .setEnableCustomRightIconAnim(true)
                                       .setEnableOnlyRightIcon(true)
                                       .setEnableRightIcon(true)
                                       .setEnableIconAnim(true)
                                       .setTitle("Alert Title")
                                       .setText("Alert text...")
                                       .show();
                           }
                       });
```

```markdown
// Правый верхний угол иконка всплывающего окна
Button btnRightOnTopIcon = (Button) findComponentById(ResourceTable.Id_btn_alert15);
btnRightOnTopIcon.setClickedListener(new Component.ClickedListener() {
   @Override
   public void onClick(Component component) {
       Alerter.create(MainAbilitySlice.this, componentContainer)
               .setCustomRightIconBig(ResourceTable.Media_custom_icon_big)
               .setCustomRightIconSmall(ResourceTable.Media_custom_icon_small)
               .setRightIconTop()
               .setEnableCustomRightIconAnim(true)
               .setEnableOnlyRightIcon(true)
               .setEnableRightIcon(true)
               .setEnableIconAnim(true)
               .setText("Уведомление масштабируется для размещения больших объемов текста.\n" +
                       "Уведомление масштабируется для размещения больших объемов текста.\n" +
                       "Уведомление масштабируется для размещения больших объемов текста.")
               .show();
   }
});
```// только текст
Button btnOnlyText = (Button) findComponentById(ResourceTable.Id_btn_alert16);
btnOnlyText.setClickedListener(new Component.ClickedListener() {
   @Override
   public void onClick(Component component) {
       Alerter.create(MainAbilitySlice.this, componentContainer)
               .setEnableIconAnim(true)
               .setText("Текст уведомления")
               .show();
   }
});```markdown
                       // С клаксоном
                       Button btnSound = (Button) findComponentById(ResourceTable.Id_btn_alert17);
                       btnSound.setClickedListener(new Component.ClickedListener() {
                           @Override
                           public void onClick(Component component) {
                               copyMp3File();
                               Alerter.create(MainAbilitySlice.this, componentContainer)
                                       .setSoundUri(Uri.parse(getFilesDir() + File.separator + "ringtone.mp3"))
                                       .setEnableIconAnim(true)
                                       .setTitle("Заголовок уведомления")
                                       .setText("Текст уведомления...")
                                       .show();
                           }
                       });
```

```markdown
                       <!-- С прокруткой -->
                       Button btnSwipeDismiss = (Button) findComponentById(ResourceTable.Id_btn_alert18);
                       btnSwipeDismiss.setClickedListener(new Component.ClickedListener() {
                           @Override
                           public void onClick(Component component) {
                               Alerter.create(MainAbilitySlice.this, componentContainer)
                                       .setEnableIconAnim(true)
                                       .enableSwipeToDismiss()
                                       .setTitle("Заголовок уведомления")
                                       .setText("Текст уведомления...")
                                       .show();
                           }
                       });
``````java
                       // Установка цвета текста для заголовка
                       Button btnCustomTextColor = (Button) findComponentById(ResourceTable.Id_btn_alert19);
                       btnCustomTextColor.setClickedListener(new Component.ClickedListener() {
                           @Override
                           public void onClick(Component component) {
                               Alert alert = Alerter.create(MainAbilitySlice.this, componentContainer)
                                       .setEnableIconAnim(true)
                                       .setTitle("Заголовок уведомления")
                                       .setText("Текст уведомления...")
                                       .show();
                               alert.getTitle().setTextColor(new Color(0xffF99143));
                               alert.getText().setTextColor(new Color(0xffcc0000));
                           }
                       });
```

```xml
            <?xml version="1.0" encoding="utf-8"?>
            <DependentLayout
                    xmlns:ohos="http://schemas.huawei.com/res/ohos"
                    ohos:id="$+id:dl_group"
                    ohos:height="match_parent"
                    ohos:width="match_parent"
                    ohos:background_element="#fff"
            >
```

```xml
<DependentLayout
       ohos:id="$+id:titlebar"
       ohos:top_margin="50vp"
       ohos:height="50vp"
       ohos:width="match_parent"
       ohos:background_element="#2c9cac">
   <Text
           ohos:text_color="#fff"
           ohos:text="Предупреждение"
           ohos:text_alignment="horizontal_center"
           ohos:center_in_parent="true"
           ohos:align_parent_left="true"
           ohos:left_margin="20vp"
           ohos:text_size="20fp"
           ohos:height="match_content"
           ohos:width="match_content"/>
</DependentLayout>

<ScrollView
       ohos:below="$id:titlebar"
       ohos:layout_alignment="horizontal_center"
       ohos:top_margin="10vp"
       ohos:height="match_parent"
       ohos:width="match_parent">

   <DependentLayout
           ohos:height="match_content"
           ohos:width="match_parent">
```        <Button
               ohos:background_element="$graphic:background_element"
               ohos:text_color="#fff"
               ohos:id="$+id:btn_alert1"
               ohos:text="ЗАГОЛОВОЧНОЕ УВЕДОМЛЕНИЕ"
               ohos:height="50vp"
               ohos:left_margin="30vp"
               ohos:right_margin="30vp"
               ohos:top_margin="10vp"
               ohos:text_size="18fp"
               ohos:width="match_parent"/>

       <Button
               ohos:background_element="$graphic:background_element"
               ohos:text_color="#fff"
               ohos:id="$+id:btn_alert2"
               ohos:below="$+id:btn_alert1"
               ohos:top_margin="10vp"
               ohos:text="УВЕДОМЛЕНИЕ ПРИ КЛИКЕ"
               ohos:height="50vp"
               ohos:text_size="18fp"
               ohos:left_margin="30vp"
               ohos:right_margin="30vp"
               ohos:width="match_parent"/>


       <Button
               ohos:background_element="$graphic:background_element"
               ohos:text_color="#fff"
               ohos:id="$+id:btn_alert3"
               ohos:below="$+id:btn_alert2"
               ohos:top_margin="10vp"
               ohos:text_size="18fp"
               ohos:text="УВЕДОМЛЕНИЕ С ПОДХОДЯЩИМ ИКОНОЧНЫМ ОБРАЗОМ"
               ohos:height="50vp"
               ohos:left_margin="30vp"
               ohos:right_margin="30vp"
               ohos:width="match_parent"/>
``````markdown
<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert3"
       ohos:id="$+id:btn_alert4"
       ohos:top_margin="10vp"
       ohos:text="Обнаружение с окрашенным текстом"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>
``````markdown
<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert4"
       ohos:id="$+id:btn_alert5"
       ohos:top_margin="10vp"
       ohos:text="ОБНАРУЖЕНИЕ С ПРОГРЕССОМ"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>

<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert5"
       ohos:id="$+id:btn_alert6"
       ohos:top_margin="10vp"
       ohos:text="ОБНАРУЖЕНИЕ ШРИФТА"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>
```
```markdown
<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert6"
       ohos:id="$+id:btn_alert7"
       ohos:top_margin="10vp"
       ohos:text="ПЕРЕДАЧА ОБРАЩЕНИЯ"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>
```
```markdown
<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert7"
       ohos:id="$+id:btn_alert8"
       ohos:top_margin="10vp"
       ohos:text="Сообщение с кнопкой"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>

<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert8"
       ohos:id="$+id:btn_alert9"
       ohos:top_margin="10vp"
       ohos:text="Пользовательский макет сообщения"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>
```<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert9"
       ohos:id="$+id:btn_alert10"
       ohos:top_margin="10vp"
       ohos:text="Полное сообщение"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>
``````markdown
<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert10"
       ohos:id="$+id:btn_alert11"
       ohos:top_margin="10vp"
       ohos:text="ЦЕНТРÁЛЬНЫЙ АЛЕРТ"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>
```

```markdown
<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert11"
       ohos:id="$+id:btn_alert12"
       ohos:top_margin="10vp"
       ohos:text="НИЖНЯЯ АЛЕРТ"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>

<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert12"
       ohos:id="$+id:btn_alert13"
       ohos:top_margin="10vp"
       ohos:text="С ПРАВОЙ ИКОНОК"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>

<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert13"
       ohos:id="$+id:btn_alert14"
       ohos:top_margin="10vp"
       ohos:text="С ТОЛЬКО ПРАВОЙ ИКОНОК"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>
``````markdown
<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert14"
       ohos:id="$+id:btn_alert15"
       ohos:top_margin="10vp"
       ohos:text="ПРАВАЯ ИКОНКА В ТОЧКЕ"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>
```
```markdown
<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert15"
       ohos:id="$+id:btn_alert16"
       ohos:top_margin="10vp"
       ohos:text="ТЕКСТОВОЕ УВЕДОМЛЕНИЕ"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>
```<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert16"
       ohos:id="$+id:btn_alert17"
       ohos:top_margin="10vp"
       ohos:text="Уведомление с обращением"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>

<Button
       ohos:background_element="$graphic:background_element"
       ohos:text_color="#fff"
       ohos:below="$+id:btn_alert17"
       ohos:id="$+id:btn_alert18"
       ohos:top_margin="10vp"
       ohos:text="Уведомление с выпадением"
       ohos:text_size="18fp"
       ohos:height="50vp"
       ohos:left_margin="30vp"
       ohos:right_margin="30vp"
       ohos:width="match_parent"/>```markdown
                        <Button
                                ohos:background_element="$graphic:background_element"
                                ohos:text_color="#fff"
                                ohos:id="@id:btn_alert18"
                                ohos:id="$+id:btn_alert19"
                                ohos:margins_bottom="10vp"
                                ohos:text="ПОДХОДЯЩИЙ ЦВЕТ ТЕКСТА"
                                ohos:margins_top="20vp"
                                ohos:text_size="18fp"
                                ohos:height="50vp"
                                ohos:margins_left="30vp"
                                ohos:margins_right="30vp"
                                ohos:width="match_parent"/>
                    </DependentLayout>
                </ScrollableLayout>
```
```## Лицензия
См. файл LICENSE для информации о правах лицензии и ограничениях (MIT).

Copyright 2017 года Tapadoo, Дублин.

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

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

1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-Alerter.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-Alerter.git
oschina-mirror
HarmonyOS-tpc-Alerter
HarmonyOS-tpc-Alerter
master