用于在Flutter中实现夜间模式/夜间阅读器效果的包。适用于需要此功能的应用程序。例如:图书应用、博客应用等……
请注意,此包(目前)与操作系统/原生夜间模式无关。它只是使其子树处于夜间阅读器的效果之下。
特点
- 对此小部件子树应用可控的夜间阅读器效果。
- 树中可以存在此小部件的多个实例,每个实例都有自己的夜间阅读器效果颜色、动画、参数……
入门
- 首先导入它
import 'package:night_reader/night_reader.dart';
用法
要使整个应用处于该效果之下,只需将此小部件包装在MaterialApp周围并控制value参数,整个应用都会受到影响。
@override
Widget build(BuildContext context) {
return AnimatedNightReader(
value: 1,
duration: const Duration(seconds: 2),
child: MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
),
);
}
如果只想将效果应用于特定子树,则可以将此小部件包装在需要的地方。
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
AnimatedNightReader(
tint: Colors.blue,
value: value1,
duration: const Duration(seconds: 2),
child: Container(
height: 300,
width: 300,
color: Colors.white,
alignment: Alignment.center,
child: const Text("Sub tree 1"),
),
),
AnimatedNightReader(
value: value2,
tint: Colors.red,
duration: const Duration(seconds: 2),
child: Container(
height: 300,
width: 300,
color: Colors.white,
alignment: Alignment.center,
child: const Text("Sub tree 2"),
),
),
],
),
),
);
}
此包带有AnimatedNightReader,当更改属性时,它将在值[0-1]之间自动动画。其他属性动画也受支持。
但是,如果需要,可以通过任何触发rebuild的方法来控制此小部件的非动画版本:NightReader。
有关每个属性的更多信息,请参阅文档。

