Flutter: come creare un campo di testo con HintText ma senza sottolineatura?


116

Questo è quello che sto cercando di fare:

inserisci qui la descrizione dell'immagine

Nella documentazione di Flutter per i campi di testo ( https://flutter.io/text-input/ ) si dice che è possibile rimuovere la sottolineatura passando nullalla decorazione. Tuttavia, questo elimina anche il testo del suggerimento.

Non voglio alcuna sottolineatura se il campo di testo è a fuoco o meno.

AGGIORNAMENTO: risposta accettata aggiornata per riflettere le modifiche in Flutter SDK a partire da aprile 2020.

Risposte:


79

Nessuna delle risposte precedenti funzionerà per il nuovo flutter sdk poiché dopo l'integrazione del supporto web e desktop è necessario specificare individualmente in questo modo

TextFormField(
    cursorColor: Colors.black,
    keyboardType: inputType,
    decoration: new InputDecoration(
        border: InputBorder.none,
        focusedBorder: InputBorder.none,
        enabledBorder: InputBorder.none,
        errorBorder: InputBorder.none,
        disabledBorder: InputBorder.none,
        contentPadding:
            EdgeInsets.only(left: 15, bottom: 11, top: 11, right: 15),
        hintText: sLabel),
  )

233

Fai cosi:

TextField(
  decoration: new InputDecoration.collapsed(
    hintText: 'Username'
  ),
),

o se hai bisogno di altre cose come l'icona, imposta il bordo con InputBorder.none

InputDecoration(
    border: InputBorder.none,
    hintText: 'Username',
  ),
),

È possibile farlo senza importare il materialpacchetto? cioè per Cupertinotema?
kosiara - Bartosz Kosarzycki

Vorrei evitare: InputDecoration' can't be assigned to the parameter type 'BoxDecoration'errore di tipo
kosiara - Bartosz Kosarzycki

13

cambia il bordo focalizzato su nessuno

TextField(
      decoration: new InputDecoration(
          border: InputBorder.none,
          focusedBorder: InputBorder.none,
          contentPadding: EdgeInsets.only(left: 15, bottom: 11, top: 11, right: 15),
          hintText: 'Subject'
      ),
    ),

12

Ecco una risposta supplementare che mostra un codice più completo:

inserisci qui la descrizione dell'immagine

  Container(
    decoration: BoxDecoration(
      color: Colors.tealAccent,
      borderRadius:  BorderRadius.circular(32),
    ),
    child: TextField(
      decoration: InputDecoration(
        hintStyle: TextStyle(fontSize: 17),
        hintText: 'Search your trips',
        suffixIcon: Icon(Icons.search),
        border: InputBorder.none,
        contentPadding: EdgeInsets.all(20),
      ),
    ),
  ),

Appunti:

  • Lo sfondo scuro (codice non mostrato) è Colors.teal.
  • InputDecorationha anche una proprietà fillede fillColor, ma non sono riuscito a ottenere un raggio d'angolo, quindi ho usato un contenitore.

3

Non ho trovato nessun'altra risposta che dia un raggio del bordo, puoi semplicemente farlo in questo modo, non annidato Container

  TextField(
    decoration: InputDecoration(
      border: OutlineInputBorder(
        borderSide: BorderSide.none,
        borderRadius: BorderRadius.circular(20),
      ),
    ),
  );

-1

Stavo usando il TextFieldcontrollo flutter.Ho ottenuto l'input digitato dall'utente utilizzando i metodi seguenti.

onChanged:(value){
}

-2
decoration: InputDecoration(
 border:OutLineInputBorder(
 borderSide:BorderSide.none
 bordeRadius: BordeRadius.circular(20.0)
 )
)

Qual è la differenza tra questa risposta e @E. La risposta di Sun di un mese fa?
Jeremy Caney

Vuoi qualcosa di nuovo?
SR Keshav

2
Se è già stata fornita una risposta, non è necessario inviarla di nuovo. In questo modo si aggiunge solo rumore per i futuri lettori, poiché devono ordinare più risposte simili. In futuro, una volta guadagnata un po 'più di reputazione, sarai in grado di dare un voto positivo alle risposte esistenti; questo è il modo preferito per convalidare un approccio e affermare che la soluzione funziona.
Jeremy Caney

1
Dovrei notare che, a volte, i contributori pubblicheranno ancora un consiglio simile se hanno un modo diverso di spiegarlo o vogliono aggiungere molti più dettagli. Va benissimo. Il problema qui è che sembra che tu stia fornendo la stessa risposta, ma con meno dettagli, quindi non contribuisce molto al thread.
Jeremy Caney
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.