浮动
Flutter画中画管理。仅限Android
应用配置
在android/src/main/AndroidManifest.xml的<activity>标签中添加android:supportsPictureInPicture="true"行
<manifest>
<application>
<activity
android:name=".MainActivity"
android:supportsPictureInPicture="true"
...
Widget
此包提供了一个辅助的PiPSwitcher小部件,用于根据当前的PiP状态切换显示的小部件。使用方法如下
PiPSwitcher(
childWhenDisabled: Scaffold(...),
childWhenEnabled: JustVideo(),
)
API
期望模式下的PiP模式仅在Android上可用,因此在平台添加此类功能的原生支持之前,不计划支持iOS和Web。
创建一个浮动实例
final floating = Floating();
完成PiP功能后,请确保处置该实例
floating.dispose();
检查PiP是否可用
final canUsePiP = await floating.isPipAvailable;
PiP可能因为管理员或设备制造商管理的系统设置而不可用。此外,该设备可能运行的是未包含此功能的Android版本。
检查应用程序是否处于PiP模式
final currentStatus = await floating.pipStatus;
可能的状态
| 状态 | 描述 | enable()会有效果吗? |
|---|---|---|
| disabled | PiP可用但当前已禁用。 | 是 |
| enabled | PiP已启用。应用程序可以显示内容,但在用户决定将应用程序恢复到全屏大小之前,将不会接收用户输入。 | 否 |
| 不可用 | 给定设备上已禁用PiP。 | 否 |
启用PiP模式
final statusAfterEnabling = await floating.enable();
默认的16/9宽高比可以用自定义的Rational覆盖。例如,要使PiP成为方形,请使用:.enable(Rational(1, 1))或.enable(Rational.square())。
启用后,用户可以通过系统UI切换关闭PiP模式。
