Afficher ou Masquer password dans TextField ou TextFormField
Afficher ou Masquer password dans TextField ou TextFormField
- 
Présentation
 - Dans ce tutoriel, nous allons vous montrer comment ajouter un bouton afficher ou masquer à la fin de l’entrée TextFiled ou TextFormField dans Flutter, chaque fois que l’utilisateur bascule le bouton, l’astérisque ‘*’ sera affiché ou masqué.
 - Pour masquer un mot de passe saisi dans un TextField ou TextFormField, définissez simplement sa propriété obscureText sur true :
 TextField( obscureText: true,)- 
Créer une application Flutter
 - Nous allons créer une application Flutter simple contenant un widget TextField (vous pouvez également utiliser TextFormField) au centre de l’écran. Ce champ de texte permet à l’utilisateur de saisir un mot de passe et dispose d’un bouton en forme d’œil pour afficher/masquer le mot de passe saisi.
 
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      // Remove the debug banner
      debugShowCheckedModeBanner: false,
      title: 'Afficher ou Masquer le mot de passe sur TextField',
      home: HomePage(),
    );
  }
}
class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);
  @override
  State createState() => _HomePageState();
}
class _HomePageState extends State {
  // show the password or not
  bool _isObscure = true;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Afficher ou Masquer le mot de passe sur TextField'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(25),
        child: Center(
          child: TextField(
            obscureText: _isObscure,
            decoration: InputDecoration(
                labelText: 'Password',
                enabledBorder: OutlineInputBorder(
                  borderSide: const BorderSide(width: 3, color: Colors.blue),
                  borderRadius: BorderRadius.circular(15),
                ),
                focusedBorder: OutlineInputBorder(
                  borderSide: const BorderSide(width: 3, color: Colors.red),
                  borderRadius: BorderRadius.circular(15),
                ),
                prefixIcon: const Icon(Icons.lock),
                // Ce bouton est utilisé pour basculer la visibilité du mot de passe
                suffixIcon: IconButton(
                    icon: Icon(
                        _isObscure ? Icons.visibility : Icons.visibility_off),
                    onPressed: () {
                      setState(() {
                        _isObscure = !_isObscure;
                      });
                    })),
          ),
        ),
      ),
    );
  }
}  

