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

OSCHINA-MIRROR/HarmonyOS-tpc-Alerter

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

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

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

С простотой в виду, библиотека 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 )

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

Введение

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

Обновления

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

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
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