按照本教程。https://itnext.io/app-theming-in-flutter-dark-mode-light-mode-27d9adf3cee
void main() {
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
runApp(
ChangeNotifierProvider<AppStateNotifier>(
builder: (context) => AppStateNotifier(), //<--COMPILER ERROR, details below.
child: MyApp(),
),
);
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return Consumer<AppStateNotifier>(
builder: (context, appState, child) {
return MaterialApp(
title: 'Lockify',
debugShowCheckedModeBanner: false,
theme: AppTheme.lightTheme,
darkTheme:
AppTheme.darkTheme,
home: MyHomePage(),
themeMode: appState.isDarkModeOn ? ThemeMode.dark : ThemeMode.light,
);
},
);
}
}
Run Code Online (Sandbox Code Playgroud)
错误:编译器消息:lib/main.dart:16:29:错误:“AppStateNotifier”类型的值无法分配给“Widget”类型的变量。
lib/main.dart:16:16: 错误:无法将参数类型“Widget …
import 'package:encrypt/encrypt.dart';
import 'package:encrypt/encrypt_io.dart';
import 'dart:io';
import 'package:pointycastle/asymmetric/api.dart';
import 'dart:async';
import 'package:flutter/services.dart' show rootBundle;
class Encrypt {
Future<String> loadPrivateKey() async {
return await rootBundle.loadString('assets/private_key.pem');
}
Future<String> loadPublicKey() async {
return await rootBundle.loadString('assets/public_key.pem');
}
encryptString() async {
print(loadPublicKey().toString());
final publicKey =
await parseKeyFromFile<RSAPublicKey>('${loadPublicKey()}');
final privateKey =
await parseKeyFromFile<RSAPrivateKey>('${loadPrivateKey()}');
final plainText = 'James Bond';
final encrypter =
Encrypter(RSA(publicKey: publicKey, privateKey: privateKey));
final encrypted = encrypter.encrypt(plainText);
final decrypted = encrypter.decrypt(encrypted);
print(decrypted);
print(encrypted.base64);
}
}
Run Code Online (Sandbox Code Playgroud)
错误:正在执行热重载...正在将文件同步到 IA 模拟器上的设备 AOSP...在 1,021 毫秒内重新加载了 707 个库中的 8 …