flutter - 检查 RangeSlider 中的哪个拇指(左或右)是滑动的
问题描述
我正在使用 RangeSlider。我需要根据(左或右拇指是幻灯片)更改文本的值。我可以根据 Thumb slide 获取 rangeValue 的值,但我想具体知道哪个拇指被滑动了。
RangeSlider(
values: rangeValues,
min: 0.0,
max: 11,
divisions: 11,
onChanged: (value) {
setState(() {
rangeValues = value;
if(rangeValues.start>=0){
range="start";
}
else if (rangeValues.end>=0){
range = "end";
}
});
})
解决方案
这对你有用:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
final appTitle = 'RangeSlider Thumb Detection ';
@override
Widget build(BuildContext context) {
return MaterialApp(
title: appTitle,
home: MyHomePage(title: appTitle),
);
}
}
class MyHomePage extends StatefulWidget {
final String title;
MyHomePage({Key key, this.title}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage>{
RangeValues rangeValues = RangeValues(0.3, 0.7);
String range = 'No meovement yet !';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(widget.title)),
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Text(range, style: TextStyle(fontSize: 22.0,),),
RangeSlider(
values: rangeValues,
min: 0.0,
max: 11,
divisions: 11,
onChanged: (value) {
setState(() {
if(value.start != rangeValues.start){
range = 'Left thumb';
}
if(value.end != rangeValues.end){
range = 'Right thumb';
}
rangeValues = value;
});
}),
],
),
);
}
}
推荐阅读
- c - 如何使用 ThrowTheSwitch 的 Unity C 单元测试库?
- java - 防止来自输入 url、java 的 XSS 攻击
- json - 在单个 JQ 运行中提取多个嵌套
- javascript - 如何在不从文本字段中获取输入的情况下制作快捷键
- ios - 使用自定义单元格类和目标 c 在 main.storyboard 中自定义 UITableVieCell
- unit-testing - 我们是否应该始终对特定值进行单元测试
- scala - 有比自定义迭代器更好的解决方案来处理分页吗?
- python - 在组合框中选择下拉列表后如何创建文本框
- kubernetes - 如果 Kubernetes 没有内置负载均衡器,怎么会命中不同的 pod?
- android - findViewById(R.id.videoView) 在片段中返回 Null (Android Studio)