设置屏幕颜色

56 阅读1分钟

tray_manager: ^0.2.0

class HomePage extends BaseWidget with TrayListener, WindowListener {
  // 下方列表
  List<Widget> tabViews = [];

  // 显示构建tab 数据列表
  List<TabItem> tabMenuList = [];
  int selectedIndex = 1; // 当前选中的 Tab 索引
  bool showTabBar = true; // 新增变量控制显隐

  @override
  void initState() {
    super.initState();
    initListener();
    // 初始化托盘
    initTray();


void initTray() async {
  // 设置托盘图标,注意替换为你自己的图标路径
  await trayManager.setIcon('assets/images/app_icon.ico');
  // 设置托盘菜单
  List<MenuItem> items = [
    MenuItem(
      key: 'show',
      label: '显示窗口',
    ),
    MenuItem(
      key: 'exit',
      label: '退出',
    ),
  ];
  await trayManager.setContextMenu(Menu(items: items));
}

@override
void onWindowClose()async {
  await windowManager.hide();
}

void initListener() {
  windowManager.addListener(this);
  trayManager.addListener(this);
}

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

@override
void onTrayIconRightMouseDown() {
  // 右键点击托盘图标时弹出菜单
  trayManager.popUpContextMenu();
}

@override
void onTrayIconMouseDown() async{
  await windowManager.show();
  await windowManager.focus();
}

@override
void onTrayMenuItemClick(MenuItem menuItem) async {
  switch (menuItem.key) {
    case 'show':
      await windowManager.show();
      await windowManager.focus();
      break;
    case 'exit':
      await trayManager.destroy();
      await windowManager.close();
      break;
  }
}