フラッタースクリーンの明るさ設定とシステムの明るさ変更連携アプリの明るさの問題

Flutter 上のアプリの画面の明るさを変更するには、これまでに 2 つのプラグインが見つかっています。

1:画面の明るさ:画面の明るさ | フラッターパッケージ

        このプラグインはアプリケーションの明るさのみを変更し、システムの明るさは変更しません

2: Screen: Flutter はサードパーティのプラグイン Screen を使用して画面の明るさを調整します

       システムの明るさを変更できるはずですが、前回のアップデートは 4 年前で時間がかかりましたが、現在は Flutter のアップデートが速く、一部の API は使用されなくなりました。だから今はこれを使わないでください

一般: フラッター プラグインは、当面システムの明るさを取得できません (アプリ内に明るさ変更設定がある場合)、システムの明るさを変更してもアプリ内の明るさを変更することはできません。そこで、ネイティブ ハイブリッド フォームに切り替えて、ネイティブ コードを記述します。

iosを例に挙げます。

ネイティブとフラッターの間の相互作用。

システムの明るさを変更するには、明るさを変更してコールバックするシステム メソッドがないため、考え方を変えて、applicationDid becomeActive メソッドでシステムの明るさを取得し、最後の明るさを保存し、矛盾している場合は変更します。 、続いて flutter を呼び出し、flutter を呼び出してアプリの Brightness メソッドを変更します。このようにして、システムの明るさを変更でき、アプリの明るさも変更できます。

アプリがシステムの明るさを変更し、それも変更した場合は、逆に操作できます。

- (void)applicationDidBecomeActive:(UIApplication *)application {
    
    double numNew = [[NSUserDefaults standardUserDefaults] doubleForKey:@"sNum"];
    double system = [[UIScreen mainScreen] brightness];
    if (numNew != system) {
        [[UIScreen mainScreen] brightness];
        [[NSUserDefaults standardUserDefaults] setDouble:system forKey:@"sNum"];
        [_flutterBridgePluginChannel invokeMethod:@"Change" arguments:@{@"num": @(system)}];

    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_27909209/article/details/130621880
Recomendado
Clasificación