Widget _buildSwitchItem()

in example/lib/pages/settings/settings_page.dart [153:183]


  Widget _buildSwitchItem(SwitchItem item) {
    return FutureBuilder<bool>(
      future: item.valueLoader(),
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return ListTile(
            title: Text(item.title),
            trailing: const CircularProgressIndicator(),
          );
        } else if (snapshot.hasError) {
          return ListTile(
            title: Text(item.title),
            subtitle: Text("Error: ${snapshot.error}"),
          );
        } else if (snapshot.hasData) {
          return ListTile(
            title: Text(item.title),
            trailing: Switch(
              value: snapshot.data!,
              onChanged: (value) {
                setState(() {
                  item.onChanged(value);
                });
              },
            ),
          );
        }
        return const SizedBox.shrink();
      },
    );
  }