是否可以在Flutter中更改Slider标签的颜色?
Slider
类的构造函数中没有此类字段。
答案 0 :(得分:2)
根据Flutter api使用valueIndicatorColor,它是SliderThemeData的属性,如此处SliderClass所述 还有SliiderThemeData
简单演示: 设置局部变量:
double feet = 0;
String heightInFeet = "null";
int height = 180;
这是您的自定义滑块解决方案
SliderTheme(
data: SliderTheme.of(context).copyWith(
valueIndicatorColor: Colors.blue, // This is what you are asking for
inactiveTrackColor: Color(0xFF8D8E98), // Custom Gray Color
activeTrackColor: Colors.white,
thumbColor: Colors.red,
overlayColor: Color(0x29EB1555), // Custom Thumb overlay Color
thumbShape:
RoundSliderThumbShape(enabledThumbRadius: 12.0),
overlayShape:
RoundSliderOverlayShape(overlayRadius: 20.0),
),
child: Slider(
value: height.toDouble(),
onChanged: (double newValue) {
setState(() {
height = newValue.toInt();
feet = (height / 30.48);
heightInFeet = feet.toStringAsFixed(2) + " feet";
});
},
divisions: 220,
label: heightInFeet,
min: 90.0,
max: 305.0,
),
)
,如果您想更改文本颜色,文本字体等,请使用
valueIndicatorTextStyle: TextStyle(
color: Colors.amber, letterSpacing: 2.0)
在SliderThemeData中
答案 1 :(得分:1)
我发现它是在Slider
字段上方的label
类中指定的。
标签使用活动的[ThemeData]的 [ThemeData.accentTextTheme.body2]文字样式。
在创建App
小部件时,必须指定accentTextTheme
和body2
字段。
return MaterialApp(
theme: ThemeData(
accentTextTheme: TextTheme(body2: TextStyle(color: Colors.white)),
),
home: MyHomePage(),
);
答案 2 :(得分:1)
这是一种实现方法,但是它将更改accentTextTheme
使用的所有放置器,您可以使用以下方法:
Theme(
child: yourSlide,
data: Theme.of(context).copyWith(
accentTextTheme: TextTheme(body2: TextStyle(color: Colors.white)),
),
)
这样,您将只更改需要更改的小部件,而不更改整个accentTextTheme
可以用于其他可能不需要更改的小部件。
答案 3 :(得分:1)
使用 SliderThemeData:
sliderTheme: ThemeData.dark().sliderTheme.copyWith(
valueIndicatorColor: _primaryColor,
valueIndicatorTextStyle: TextStyle(
backgroundColor: Colors.transparent
)
)