4 метода скрыть подчеркивание во Flutter TextFormField

Чтобы скрыть подчеркивание во Flutter TextFormField, вы можете использовать различные методы. Вот несколько подходов, которые вы можете попробовать:

  1. Использование класса InputDecoration:

    TextFormField(
     decoration: InputDecoration(
       enabledBorder: UnderlineInputBorder(
         borderSide: BorderSide(color: Colors.transparent),
       ),
       focusedBorder: UnderlineInputBorder(
         borderSide: BorderSide(color: Colors.transparent),
       ),
     ),
    )
  2. Применение пользовательского стиля к подчеркиванию:

    TextFormField(
     decoration: InputDecoration(
       enabledBorder: UnderlineInputBorder(
         borderSide: BorderSide(color: Colors.transparent),
       ),
       focusedBorder: UnderlineInputBorder(
         borderSide: BorderSide(color: Colors.transparent),
       ),
     ),
     style: TextStyle(decoration: TextDecoration.none),
    )
  3. Использование пользовательского InputDecorationTheme:

    final theme = ThemeData(
     inputDecorationTheme: InputDecorationTheme(
       enabledBorder: UnderlineInputBorder(
         borderSide: BorderSide(color: Colors.transparent),
       ),
       focusedBorder: UnderlineInputBorder(
         borderSide: BorderSide(color: Colors.transparent),
       ),
     ),
    );
    
    TextFormField(
     decoration: InputDecoration(
       // Custom decoration properties
     ),
     style: theme.textTheme.subtitle1,
    )
  4. Расширение класса UnderlineInputBorder:

    class CustomUnderlineInputBorder extends UnderlineInputBorder {
     const CustomUnderlineInputBorder({
       BorderSide borderSide = const BorderSide(),
       BorderRadius borderRadius = const BorderRadius.only(
         topLeft: Radius.circular(4.0),
         topRight: Radius.circular(4.0),
       ),
     }) : super(borderSide: borderSide, borderRadius: borderRadius);
    
     @override
     CustomUnderlineInputBorder copyWith(
         {BorderSide? borderSide, BorderRadius? borderRadius}) {
       return CustomUnderlineInputBorder(
         borderSide: borderSide ?? this.borderSide,
         borderRadius: borderRadius ?? this.borderRadius,
       );
     }
    }
    
    TextFormField(
     decoration: InputDecoration(
       enabledBorder: CustomUnderlineInputBorder(
         borderSide: BorderSide(color: Colors.transparent),
       ),
       focusedBorder: CustomUnderlineInputBorder(
         borderSide: BorderSide(color: Colors.transparent),
       ),
     ),
    )

Это всего лишь несколько способов скрыть подчеркивание в TextFormField. Вы можете выбрать тот, который лучше всего соответствует вашим потребностям.