Flutter能改变屏幕亮度吗?我发现ThemeData中的Brightness只有两个值:light和dark。那么我该如何在应用程序中将屏幕亮度从1到10进行调整呢?
Flutter能改变屏幕亮度吗?我发现ThemeData中的Brightness只有两个值:light和dark。那么我该如何在应用程序中将屏幕亮度从1到10进行调整呢?
是的,Flutter可以。你可以使用屏幕插件:屏幕插件
这是一个如何实现的例子,你只需设置_brightness
为你想要的起始值,并使用滑块进行更改:
import 'package:flutter/material.dart';
import 'package:screen/screen.dart';
void main() => runApp(new MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
bool _isKeptOn = false;
double _brightness = 1.0;
@override
initState() {
super.initState();
initPlatformState();
}
initPlatformState() async {
bool keptOn = await Screen.isKeptOn;
double brightness = await Screen.brightness;
setState((){
_isKeptOn = keptOn;
_brightness = brightness;
});
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(title: new Text('Screen plugin example')),
body: new Center(
child: new Column(
children: <Widget>[
new Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text("Screen is kept on ? "),
new Checkbox(value: _isKeptOn, onChanged: (bool b){
Screen.keepOn(b);
setState((){_isKeptOn = b; });
})
]
),
new Text("Brightness :"),
new Slider(value : _brightness, onChanged : (double b){
setState((){
_brightness = b;
});
Screen.setBrightness(b);
})
]
)
),
),
);
}
}
如果您需要更多解释,请告诉我。此解决方案仅适用于Android和iOS,不包括桌面端。
“当前正在运行的应用程序正在控制快速面板,现在无法调整亮度。”
- Dhiren Basra