You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何通过圆形选择器控制手机亮度及查询对应Widget名称

问题解答

圆形选择器控件名称

你要找的圆形调节控件,Flutter生态中常用的有两种实现方案:

  • 第三方库现成组件:优先推荐使用pub.dev上的syncfusion_flutter_sliders库提供的SfRadialSlider,或者轻量版circular_slider库的CircularSlider组件,都原生支持圆形拖动调节、自定义样式的需求,完美适配亮度调节的交互场景。
  • 自定义实现:如果不想引入额外依赖,可以通过CustomPaint自行绘制圆形轨道和拖动按钮,搭配手势检测实现选择逻辑。

对应控件效果参考:
圆形亮度选择器示例

Flutter实现手机亮度控制的具体方法

前置准备

首先引入系统亮度操作依赖screen_brightness,同时配置平台权限:

  • 安卓端:在android/app/src/main/AndroidManifest.xml中添加权限声明:
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    
  • iOS端:在ios/Runner/Info.plist中添加配置:
    <key>UIRequiresFullScreen</key>
    <true/>
    

核心实现代码

  1. 初始化时获取当前系统亮度:
import 'package:screen_brightness/screen_brightness.dart';

// 存储当前亮度值,范围0-1
double _brightness = 0.5;

@override
void initState() {
  super.initState();
  _initBrightness();
}

Future<void> _initBrightness() async {
  _brightness = await ScreenBrightness().current;
  if(mounted) setState((){});
}
  1. 绑定圆形滑块的onChanged回调,实时更新亮度:
onChanged(value){
  setState((){
    _brightness = value;
  });
  // 同步设置系统亮度
  ScreenBrightness().setScreenBrightness(value);
}

注意事项

  • iOS平台仅支持调整当前App前台运行时的临时亮度,App退到后台后会自动恢复系统原有亮度,无法直接修改全局系统亮度。
  • 安卓平台申请权限后可以修改全局系统亮度,首次调用修改接口时会自动弹出权限申请弹窗引导用户授权。

内容的提问来源于stack exchange,提问作者Al-Hashimy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:18:05