Est-il possible de changer la couleur de l'étiquette du curseur dans Flutter?
Un tel champ n'existe pas dans le constructeur de la classe Slider .
3 Réponses :
J'ai trouvé qu'il est spécifié dans la classe Slider au-dessus du champ label .
L'étiquette est rendue à l'aide des [ThemeData] actifs Style de texte [ThemeData.accentTextTheme.bodyText2].
Lors de la création du widget App , il est nécessaire de spécifier le champ accentTextTheme et le champ bodyText2 .
body2 est obsolète. Utilisez plutôt bodyText2
c'est une façon de le faire, mais cela changera tous les placers où accentTextTheme il est utilisé, vous pouvez utiliser ceci:
Theme(
child: yourSlide,
data: Theme.of(context).copyWith(
accentTextTheme: TextTheme(bodyText2: TextStyle(color: Colors.white)),
),
)
Ceci de façon à ce que vous changiez uniquement le widget que vous avez besoin de changer et non tout le accentTextTheme qui peut être utilisé pour d'autres que vous n'avez peut-être pas besoin de changer.
body2 est obsolète. utilisez plutôt bodyText2.
Selon Flutter api, utilisez valueIndicatorColor qui est la propriété de SliderThemeData Comme mentionné ici SliderClass et ici SliiderThemeData
Démonstration simple: définir des variables locales:
valueIndicatorTextStyle: TextStyle(
color: Colors.amber, letterSpacing: 2.0)
et voici votre solution de curseur personnalisé
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,
),
)
et si vous souhaitez modifier la couleur du texte font etc. utilisez
double feet = 0; String heightInFeet = "null"; int height = 180;
dans SliderThemeData