Может ли флаттер изменить яркость экрана? - PullRequest
1 голос
/ 03 августа 2020

Может флаттер изменить яркость экрана? Я обнаружил, что яркость в ThemeData имеет только два значения: светлое и темное. Как в приложении настроить яркость экрана от 1 до 10?

1 Ответ

0 голосов
/ 03 августа 2020

Да 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);
                  })
                ]
            )
        ),
      ),
    );
  }
}

Дайте мне знать, если вам нужны дополнительные объяснения.

...