这段代码,其主页面包含一个标题和一个滑块。滑块允许用户在 0 到 100 的范围内选择一个值,并在滑块旁边显示该值。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Slider Demo',
home: Scaffold(
appBar: AppBar(
title: Text('Slider Demo'),
),
body: Center(
child: MySlider(),
),
),
);
}
}
class MySlider extends StatefulWidget {
_MySliderState createState() => _MySliderState();
}
class _MySliderState extends State<MySlider> {
double _currentSliderValue = 20.0;
Widget build(BuildContext context) {
return Slider(
value: _currentSliderValue,
min: 0.0,
max: 100.0,
divisions: 5,
label: _currentSliderValue.round().toString(),
onChanged: (double value) {
setState(() {
_currentSliderValue = value;
});
},
);
}
}
以下是对这段代码的分析:
一、导入部分
导入了package:flutter/material.dart,这是 Flutter 框架的核心库,提供了构建 Flutter 应用所需的基本组件和功能。
二、main函数
void main() { runApp(MyApp()); }:这是应用的入口点,调用runApp函数并传入MyApp实例,启动 Flutter 应用。
三、MyApp类
继承自StatelessWidget,表示这是一个无状态的小部件。
build方法返回一个MaterialApp,设置了应用的标题为 ‘Flutter Slider Demo’,主页面是一个包含AppBar和body的Scaffold。
AppBar设置了标题为 ‘Slider Demo’。
body的中心位置放置了MySlider小部件。
四、MySlider类
继承自StatefulWidget,表示这是一个有状态的小部件,因为它的状态可能会发生变化。
createState方法返回_MySliderState实例,用于管理MySlider的状态。
五、_MySliderState类
管理MySlider的状态。
定义了一个私有变量_currentSliderValue,初始值为 20.0,表示滑块的当前值。
build方法返回一个Slider小部件,设置了以下属性:
value:当前滑块的值,即_currentSliderValue。
min和max:分别设置滑块的最小值为 0.0,最大值为 100.0。
divisions:将滑块范围分为 5 个部分。
label:显示当前滑块值的整数部分作为标签。
onChanged:当滑块值发生变化时,调用setState方法更新_currentSliderValue,从而触发小部件的重新构建。
总体来说,这段代码创建了一个 Flutter 应用,展示了一个简单的滑块组件,用户可以拖动滑块来改变值,并且滑块上会显示当前值的整数部分作为标签。