Данный проект представляет собой гармонизированную версию открытого проекта EasyFloat, которую можно отслеживать через теги проекта и адрес GitHub https://github.com/princekin-f/EasyFloat.
Версия: 2.0.2
Метод 1:
library.har
из папки easyfloat/library/output
..har
файл в директорию "entry -> libs".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'
}
.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"/>
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 )