2
votes

Comment changer la couleur de l'étiquette du curseur dans Flutter?

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 .


0 commentaires

3 Réponses :


1
votes

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 .

< pré> XXX


1 commentaires

body2 est obsolète. Utilisez plutôt bodyText2



2
votes

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.


1 commentaires

body2 est obsolète. utilisez plutôt bodyText2.



7
votes

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


0 commentaires