根据当前平台使 Widget 不可见

Make a Widget invisible based on current plattform

我想在 android 时显示该小部件,并且我想在 iOS 时使其不可见。我想在 iOS 上禁用 Widget,因为备份功能在 IOS 上不起作用(需要文件系统权限)。我看过关于可见性前缀的帖子,但我不知道如何让这个平台基于。

代码:

ListTile(
            title: const Text('Backup & Wiederherstellen \n(Nur Android)'),
            leading: const Icon(Icons.restore),
            onTap: () {
              Storage storage = LocalStorage();
              Navigator.push(
                context,
                MaterialPageRoute(
                  builder: (context) => BackupAndRestorePage(
                    storage: storage,
                  ),
                ),
              );
            },
          ),

import dart:io 试试这个:


if(Platform.isAndroid)
  ListTile(
            title: const Text('Backup & Wiederherstellen \n(Nur Android)'),
            leading: const Icon(Icons.restore),
            onTap: () {
              Storage storage = LocalStorage();
              Navigator.push(
                context,
                MaterialPageRoute(
                  builder: (context) => BackupAndRestorePage(
                    storage: storage,
                  ),
                ),
              );
            },
          ),

您可以使用 Visibilty。此外,您必须导入 dart:io 以检查您当前使用的平台。

Visibility(
  visible: Platform.isAndroid,
  child: ListTile(
    title: const Text('Backup & Wiederherstellen \n(Nur Android)'),
    leading: const Icon(Icons.restore),
    onTap: () {
      Storage storage = LocalStorage();
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => BackupAndRestorePage(
            storage: storage,
          ),
        ),
      );
    },
  ),
);