📜  prefs getBool 颤振 (1)

📅  最后修改于: 2023-12-03 15:03:51.803000             🧑  作者: Mango

使用 prefs getBool 颤振

prefs getBool 是 Flutter 中的一个 API,可用于获取布尔类型的偏好设置数据。偏好设置数据是指应用程序存储在设备上的小型键值对,用于存储用户的偏好设置和应用程序的状态信息。

如何使用 prefs getBool

在使用 prefs getBool 之前,需要先引入 shared_preferences 库。

import 'package:shared_preferences/shared_preferences.dart';

然后,可以使用以下代码获取布尔类型的偏好设置数据:

SharedPreferences prefs = await SharedPreferences.getInstance();
bool isVibrating = prefs.getBool('颤振') ?? false;

在上面的代码中,'颤振' 是存储偏好设置数据的键。如果存储偏好设置数据时未指定键或未找到与键对应的值,则返回默认值 false

使用示例

以下是一个使用 prefs getBool 获取偏好设置数据的示例,该示例通过控制设备是否震动来演示了 prefs getBool 的基本使用方式。

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool _isVibrating = false;

  @override
  void initState() {
    super.initState();
    _loadSettings();
  }

  Future<void> _loadSettings() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();

    setState(() {
      _isVibrating = prefs.getBool('颤振') ?? false;
    });
  }

  Future<void> _saveSettings(bool isEnabled) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();

    setState(() {
      _isVibrating = isEnabled;
    });

    await prefs.setBool('颤振', isEnabled);

    if (_isVibrating) {
      HapticFeedback.vibrate();
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                '是否开启震动:',
                style: TextStyle(fontSize: 18),
              ),
              SizedBox(height: 10),
              Switch(
                value: _isVibrating,
                onChanged: (bool value) {
                  _saveSettings(value);
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

该示例中,应用程序在启动时加载存储的偏好设置数据,并在切换开关状态时保存新的设置值,并使用 HapticFeedback.vibrate() 方法使设备震动。

总结

prefs getBool 提供了一种方便快捷的方法来获取布尔类型的偏好设置数据,使开发者能够轻松存储和检索应用程序的状态信息和用户的偏好设置。在使用时需要注意为键设置唯一的名称,避免与其他应用程序或系统组件使用的键名称冲突。