presentation-displays
该 Flutter 插件支持在两个屏幕上运行。它基本上是通过 HDMI 或无线方式连接到另一块屏幕的平板电脑。
- 星标
- 76
- 复刻
- 123
- 最近推送(UTC)
- 2024年3月26日
- 项目状态
- 未归档
原始 README
以下为英文项目原文快照,最新内容请访问 GitHub。
presentation_displays
Supported mobile platforms iOS and Android
Flutter plugin supports to run on two screens. It's basically a tablet connected to another screen via an HDMI or Wireless
Plugin: https://pub.dev/packages/presentation_displays
Idea: We create a Widget by using Flutter code and pass it to Native code side then convert it to FlutterEngine and save it to FlutterEngineCache for later use.
Next, we define the Display by using displayId and we will define the UI flutter that needs to display by grabbing FlutterEngine in FlutterEngineCache and transferring it to Dialog Presentation as a View.
We provide methods to get a list of connected devices and the information of each device then transfer data from the main display to the secondary display.
Simple steps:
-
Create Widgets that need to display and define them as a permanent router when you configure the router in the Flutter code.
-
Get the Displays list by calling
displayManager.getDisplays () -
Define which Display needs to display For instance:
displays [1] .displayIdDisplay the index 2. -
Display it on Display with your routerName as
presentationdisplayManager.showSecondaryDisplay (displayId: displays [1] .displayId, routerName: "presentation") -
Transmit the data from the main display to the secondary display by
displayManager.transferDataToPresentation (" test transfer data ") -
The secondary screen receives data
@override
Widget build (BuildContext context) {
return SecondaryDisplay (
callback: (argument) {
setState (() {
value = argument;
});
}
);
}
- wesetup new entry point for secondary display so we can decided what we need to call for initialization. Works only for android for now
@pragma('vm:entry-point')
void secondaryDisplayMain() {
/// do something that don't break plugin registration here.
}
Upgrade version 1.0.0
-
Able to package android release build. Works fine in example app.
-
Tested example app in android tab and ios tab and things work as expected. Ensure the devices have USB C 3.0 and above else HDMI out is not supported.
-
In case of iOS, please refer to example app app delegate. There are few lines of code which needs to be added to your app's app delegate as well for this to work fine in iOS.
-
Updated optional issues and null checks
-
Added option to hide second display from the first
-
WIP support second main in iOS for extended display
-
WIP Send data back from 2nd to 1st display
You can take a look at our example to learn more about how the plugin works
Test on Sunmi-D2 device
分类
使用的依赖
依赖清单 3 项
- flutter
{"sdk":"flutter"} - flutter_test开发依赖
{"sdk":"flutter"} - flutter_lints开发依赖
^1.0.4
如何选择适合项目的代码仓?
先按使用场景筛选,再比较项目活跃情况,最后到原始仓库核对使用要求。
- 通过仓库名、作者或描述搜索,再按技术分类缩小范围。
- 结合星标、复刻与最近推送比较项目;星标反映社区关注,不代表质量保证。
- 使用前在 GitHub 核对 README、许可证与 Issues。
来源与维护
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗
