效果视频:

 

 

教程:

1.Xamarin项目Android端安装安卓nuget包

  •  
Install-Package XamarinLibrary.Xamarin.Android.PrincekinF.EasyFloat -Version 2.0.2

 

2.AndroidManifest.xml添加SYSTEM_ALERT_WINDOW权限(可选:用于系统浮窗)

 

3.参考原作者Android原生源码用法对照调用C#相应函数;

 

4.在Xamarin方面将EasyFloat相关控件使用Renderer方案在Xamarin.Forms显示;

 

5.涉及Xamarin.Forms Renderer的使用时,可以参考源码示例的代码进行相应处理。

 

其他资料:

 

Xamarin.Forms 演示EasyFloat的Sample的源码:

https://github.com/jingliancui/XamarinFormsEasyFloatSample

 

原生Android的EasyFloat源码:

https://github.com/princekin-f/EasyFloat

 

原生Android的EasyFloat的使用方法:

https://github.com/princekin-f/EasyFloat#%E5%AE%8C%E6%95%B4%E4%BD%BF%E7%94%A8%E7%A4%BA%E4%BE%8B

 

微软官方Renderer教程示例:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/video-player/

 

EasyFloat特点功能:

支持单页面浮窗,无需权限申请

支持全局浮窗、应用前台浮窗,需要授权悬浮窗权限

自动权限检测、自动跳转浮窗权限管理页、自动处理授权结果

支持系统浮窗的页面过滤

支持拖拽,支持各种状态的回调

支持默认位置的设定,支持对齐方式和偏移量的设定

支持创建多个单页面浮窗、多个系统浮窗,Tag进行区分

支持出入动画的设定,有默认动画,可自行替换(策略模式)

使用简单、链式调用、可轻松修改浮窗View

支持Kotlin DSL,可按需回调状态,摆脱Java的繁琐

支持状态栏沉浸,侧滑打开、拖拽关闭

支持解锁更多姿势,如:拖拽缩放、通知弹窗...

 

后话:

本次为Xamarin.Android带来Android的浮窗控件,这控件的API不仅能在App层级浮窗,也能在系统层级浮窗,更多的功能特性也能在文中提到的特点功能看到。