screen_retriever

June 9, 2026 · View on GitHub

⚠️ 迁移通知: 本插件正在迁移到 libnativeapi/nativeapi-flutter

新版本基于统一的 C++ 核心库(libnativeapi/nativeapi),提供更完整、一致的跨平台原生 API 支持。

screen_retriever

pub version

这个插件允许 Flutter 桌面应用检索关于屏幕大小,显示,光标位置等信息。


English | 简体中文


平台支持

LinuxmacOSWindows
✔️✔️✔️

文档

快速开始

安装

将此添加到你的软件包的 pubspec.yaml 文件:

dependencies:
  screen_retriever: ^0.2.0

dependencies:
  screen_retriever:
    git:
      url: https://github.com/leanflutter/screen_retriever.git
      path: packages/screen_retriever
      ref: main

用法

Display? _primaryDisplay;
List<Display> _displayList = [];

void _init() async {
  _primaryDisplay = await screenRetriever.getPrimaryDisplay();
  _displayList = await screenRetriever.getAllDisplays();
  setState(() {});
}

监听事件

class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> with ScreenListener {
  @override
  void initState() {
    screenRetriever.addListener(this);
    super.initState();
  }

  @override
  void dispose() {
    screenRetriever.removeListener(this);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    // ...
  }

  @override
  void onScreenEvent(String eventName) {
    String log = 'Event received: $eventName)';
    print(log);
  }
}

请看这个插件的示例应用,以了解完整的例子。

谁在用使用它?

API

ScreenRetriever

MethodDescriptionLinuxmacOSWindows
getCursorScreenPoint返回 Offset - 鼠标指针的当前绝对位置。✔️✔️✔️
getPrimaryDisplay返回 Display - 主显示屏。✔️✔️✔️
getAllDisplays返回 List<Display> - 当前可用的显示器列表。✔️✔️✔️

贡献者 ✨

感谢这些优秀的人 (emoji key):

LiJianying
LiJianying

💻
Christian Padilla
Christian Padilla

💻
J-P Nurmi
J-P Nurmi

💻
Kingtous
Kingtous

💻
fufesou
fufesou

💻
lukasz-lukasz-lukasz
lukasz-lukasz-lukasz

💻
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

许可证

MIT