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

OSCHINA-MIRROR/ts_ohos-easy-float

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

EasyFloat

Данный проект представляет собой гармонизированную версию открытого проекта EasyFloat, которую можно отслеживать через теги проекта и адрес GitHub https://github.com/princekin-f/EasyFloat.

Версия: 2.0.2

Описание проекта

Название проекта: EasyFloat: плавающие окна никогда ещё не были такими простыми

Серия: адаптация и портирование компонентов третьих сторон для HarmonyOS

Функционал:

  • Поддержка одиночных плавающих окон без необходимости запроса разрешений
  • Поддержка глобальных плавающих окон и плавающих окон приложения в переднем плане, требуются разрешения на плавающее окно
  • Автоматическое обнаружение разрешений, автоматическая переадресация на страницу управления разрешениями плавающего окна, автоматическое управление результатами разрешений
  • Поддержка фильтрации страниц системы
  • Поддержка перемещения мышью, поддержка обратной связи различных состояний
  • Поддержка установки начального положения, поддержка выравнивания и смещения
  • Поддержка создания нескольких одиночных плавающих окон и системных плавающих окон, разделённых тегами
  • Поддержка настройки входящих и выходящих анимаций, имеются встроенные анимации, которые могут быть заменены (паттерн стратегии)
  • Простое использование, цепочные вызовы методов, лёгкость изменения плавающего окна View### Адрес документации исходного проекта: https://github.com/princekin-f/EasyFloat

Язык программирования: Java

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

Метод 1:

    1. Скачайте файл library.har из папки easyfloat/library/output.
    1. Запустите DevEco Studio и импортируйте скачанный .har файл в директорию "entry -> libs".
    1. В файле build.gradle модуля добавьте зависимость, указав ссылку на jar файл в директории libs.
dependencies {
    implementation fileTree(dir: 'libs', include: ['.jar', '.har'])
    ...
}

Метод 2:

allprojects {
    repositories {
        mavenCentral()
    }

    implementation 'com.gitee.ts_ohos:EasyFloat:1.0.0'
}
    1. Щелкните правой кнопкой мыши по импортированному .har файлу и выберите "Add as Library", чтобы добавить его как библиотеку. Выберите нужный модуль и нажмите "OK" для завершения процесса.

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

EasyFloat — это плавающее окно для HarmonyOS, которое поддерживает фильтрацию страниц, настраиваемую анимацию, возможность установки одиночных плавающих окон, плавающих окон приложения в переднем плане и глобальных плавающих окон. Разрешения на плавающие окна запрашиваются автоматически по мере необходимости. Для запроса разрешений Ability плавающего окна требуется передать resId в корневом контексте.1. Прямое использование контроллера Drag & Drop в XML-разметке:

<com.lzf.easyfloat.widget.activityfloat.FloatingView
    ohos:id="$+id:floatingView"
    ohos:height="match_content"
    ohos:width="match_content"
    ohos:layout_alignment="center"
    ohos:left_margin="40vp"/>
<Image
    ohos:height="match_content"
    ohos:width="match_content"
    ohos:image_src="$media:ic_launcher_round"/>

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

EasyFloat.with(this) // Sets the XML layout for the floating window and can specify additional parameters .setLayout(R.layout.float_app, new OnInvokeView() {}) // Sets the type of display for the floating window, by default it shows only in the current activity; you can choose to always show, only to applications in the foreground, or only background applications .setShowPattern(ShowPattern.ALL_TIME) // Sets the binding method for the floating window, there are a total of 15 options, see more at SidePattern .setSidePattern(SidePattern.RESULT_HORIZONTAL) // Sets a tag for the floating window, used to separate multiple floating windows .setTag("testFloat") // Enables or disables the ability to move the floating window, by default movement is enabled .setDragEnable(true) // Determines whether an EditText exists in the system's floating window, applicable only to the system's floating window, by default no .hasEditText(false) // Sets a fixed position for the floating window, note: setting a fixed position makes attributes such as Gravity and offset useless .setLocation(100, 200) // Sets the orientation and coordinate offset for the floating window .setGravity(Gravity.END | Gravity.CENTER_VERTICAL, 0, 200) // Sets the width and height fill properties of the floating window relative to its parent container, setting match_parent in XML does not work .setMatchParent(false, false)


    // Устанавливает анимацию входа и выхода плавающего окна, можно задать свою анимацию, реализовать соответствующий интерфейс (паттерн стратегии), если анимация не требуется, установите её как null
     .setAnimator(new DefaultAnimator())
     // Устанавливает анимацию входа и выхода системного плавающего окна, используйте аналогично
     .setAppFloatAnimator(new AppFloatDefaultAnimator())
     // Устанавливает страницы, которые не должны отображаться в системном плавающем окне
     .setFilter(MainActivity.class, SecondActivity.class)
     // Устанавливает эффективную высоту отображения системного плавающего окна (высота без учета виртуальной навигационной панели), обычно не используется, кроме случаев адаптации к виртуальной навигационной панели
     .setDisplayHeight((context) -> DisplayUtils.rejectedNavHeight(context))
     // Обратные вызовы состояний плавающего окна, такие как: результат создания, отображение, скрытие, удаление, событие касания, процесс перемещения, завершение перемещения
     .registerCallback(() -> {
         createResult((isCreated, msg, view) -> {});
         show(() -> {});
         hide(() -> {});
         dismiss(() -> {});
         touchEvent((view, motionEvent) -> {});
         drag((view, motionEvent) -> {});
         dragEnd(() -> {});
     });
 // Создание плавающего окна (это ключевой момент!)
 .show(-1);
```### API для управления Ability-плавающими окнами:

```java
// Закрыть плавающее окно
dismiss(Activity activity, String floatTag)
// Скрыть плавающее окно
hide(Activity activity, String floatTag)
// Отобразить плавающее окно
show(Activity activity, String floatTag)
// Установить возможность перемещения плавающего окна
setDragEnable(activity: Activity? = null, dragEnable: Boolean, floatTag: String? = null)
// Определяет, отображается ли плавающее окно
isShow(activity: Activity? = null, floatTag: String? = null)
// Получает наше плавающее окно View
getFloatView(activity: Activity? = null, tag: String? = null)

PS: ? = null представляет собой опциональный параметр, который можно не указывать; значение по умолчанию — null.

4. API для системных плавающих окон:
```java
// Закрыть плавающее окно
dismissAppFloat(tag: String? = null)
// Скрыть плавающее окно
hideAppFloat(tag: String? = null)
// Отобразить плавающее окно
showAppFloat(tag: String? = null)
// Установить возможность перетаскивания
appFloatDragEnable(dragEnable: Boolean, tag: String? = null)
// Определяет, отображается ли плавающее окно
appFloatIsShow(tag: String? = null)
// Получает наше плавающее окно View
getAppFloatView(tag: String? = null)
// Добавляет одиночное плавающее окно для фильтрации страниц
filterActivity(activity: Activity, tag: String? = null)
// Добавляет несколько плавающих окон для фильтрации страниц
filterActivities(tag: String? = null, vararg clazz: Class<*>)
// Удаляет одиночное плавающее окно для фильтрации страниц
removeFilter(activity: Activity, tag: String? = null)
// Удаляет несколько плавающих окон для фильтрации страниц
removeFilters(tag: String? = null, vararg clazz: Class<*>)
// Очищает фильтрацию страниц
clearFilters(tag: String? = null)
```## Версионирование
- v1.0.0 Первый выпуск проекта

## Лицензия
```javascript
Copyright 2019 Liu Zhenfeng.

Разрешено с условиями лицензии Apache, версия 2.0 ("лицензия");
вы можете использовать этот файл только в соответствии с лицензией.
Вы можете получить копию лицензии по адресу

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

Если это не требуется применимыми законами или письменно согласовано, программное обеспечение,
распределенное под лицензией, предоставляется «как есть», без каких-либо гарантий или условий любого типа,
как явных, так и подразумевающихся. См. лицензию для конкретного языка, регулирующего права и ограничения,
связанные с лицензией.
@@ -1 +1 @@
-"Лицензия" -> "лицензия"
+"Лицензия" -> "лицензия"
 
@@ -3 +3 @@
-"лицензии"; -> "лицензии";
+"лицензии"; -> "лицензии";
 
@@ -5 +5 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -7 +7 @@
-"лицензии," -> "лицензии,"
+"лицензии," -> "лицензии,"
 
@@ -9 +9 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -11 +11 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -13 +13 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -15 +15 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -17 +17 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -19 +19 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -21 +21 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -23 +23 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -25 +25 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -27 +27 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -29 +29 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -31 +31 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -33 +33 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -35 +35 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -37 +37 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -39 +39 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -41 +41 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -43 +43 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -45 +45 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -47 +47 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -49 +49 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -51 +51 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -53 +53 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -55 +55 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -57 +57 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -59 +59 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -61 +61 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -63 +63 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -65 +65 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -67 +67 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -69 +69 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -71 +71 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -73 +73 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -75 +75 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -77 +77 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -79 +79 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -81 +81 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -83 +83 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -85 +85 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -87 +87 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -89 +89 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -91 +91 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -93 +93 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -95 +95 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -97 +97 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -99 +99 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -101 +101 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -103 +103 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -105 +105 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -107 +107 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -109 +109 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -111 +111 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -113 +113 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -115 +115 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -117 +117 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -119 +119 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -121 +121 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -123 +123 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -125 +125 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -127 +127 @@
-"лицензии." -> "лицензии."
+"лицензии." -> "лицензии."
 
@@ -129 +129 @@
-"лицензии." -> "лицензии."
+"лиц

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

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

Введение

Поддерживает плавающее окно на одной странице, не требует запроса разрешений. Поддерживает глобальное плавающее окно и плавающее окно приложения на переднем плане, требуются разрешения на управление плавающими окнами. Автоматическое определение прав доступа, автоматический переход на страницу управления разрешениями для плавающих окон, автоматич... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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