Come usare Android: maxWidth?

Voglio impostare una larghezza massima di una casella di modifica. Così ho creato questo piccolo layout:

   

Ma non funziona, la scatola potrebbe essere più di 150 dp in ogni caso. android:maxWidth="150dp" in EditText darà lo stesso risultato. Ho letto ( maxWidth non funziona con fill_parent ) che l’impostazione della larghezza massima e minima della stessa dimensione dovrebbe risolverlo:

  

Ma non è così.

Ho trovato una soluzione al mio problema qui qui: Impostare una larghezza massima su un ViewGroup E questo funziona alla grande. Ma suppongo che l’attributo maxWidth sia qui per la ragione. Come dovrebbe essere usato? O c’è qualche documentazione su questo? Ho trascorso ore su questo problema e ancora non capisco come usare questo semplice attributo.

Voglio impostare una larghezza massima di una casella di modifica.

Nel tuo esempio:

  

Gli attributi layout_width e ems stanno cercando di impostare lo stesso valore. Android sembra scegliere il valore fill_parent più grande e ignora l’altro. E quando lo usi:

  

Qui ems e maxWidth stanno cercando di impostare lo stesso valore, di nuovo viene utilizzato il valore maggiore. Quindi, a seconda di ciò che vuoi veramente, puoi usare:

  

o sostituire android:ems="10" con android:maxWidth="50dp" se si preferisce lavorare con dp.

Infine, il tuo LinearLayout ha solo un figlio, il testo Edit. In genere, quando ciò accade, è ansible rimuovere i tag LinearLayout e utilizzare EditText da solo.