2015-06-19 12 views
12

Sto tentando di aggiungere un'icona sinistra al mio TextInputLayout, ma il testo supera l'icona. Quando aggiungo un padding, tutto si muove insieme.Icona sinistra in TextInputLayout

ho provato con

android:drawableLeft="@drawable/ic_store_white_48dp" 
android:drawablePadding="50dp" 
android:drawableStart="@drawable/ic_store_white_48dp" 

Ma non funziona! dovrei implementare un orizzontale LinearLayout per ogni riga, ma vorrei essere sicuro non c'è modo più semplice per farlo

Ecco il mio schema di codice:

 <android.support.design.widget.TextInputLayout 
      android:id="@+id/til_calle" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 


      <EditText 
       android:id="@+id/et_calle" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:drawableLeft="@drawable/ic_store_white_48dp" 
       android:drawablePadding="50dp" 
       android:drawableStart="@drawable/ic_store_white_48dp" 
       android:hint="Calle" 
       android:inputType="text" /> 

     </android.support.design.widget.TextInputLayout> 
+0

Perché non utilizzare un 'LinearLayout' o' RelativeLayout'? Se lo fai, puoi usare 'android: layout_toRightOf', ecc. – McGuile

+1

Sì, potrei farlo, ma vorrei" duplicare "la mia quantità di codice (ho come 40 campi, quindi mi piacerebbe ottimizzarlo) –

+0

Se hai 40 campi perché non utilizzare un ListView, quindi riempire il ListView con ogni riga? –

risposta

14

Assicurarsi che si sta utilizzando l'ultima libreria Design, tutto ciò che serve sia per Design e AppCompat è:

compile 'com.android.support:design:23.2.0'

Prova utilizzando sia biblioteca TextInputLayout del Disegno e AppCompat di AppCompatEditText.

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:textColor="@android:color/white" 
    android:textColorHint="@color/loginHint"> 

    <android.support.v7.widget.AppCompatEditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:imeOptions="actionNext" 
     android:inputType="textEmailAddress|textNoSuggestions" 
     android:minWidth="350dp" 
     android:drawableLeft="@drawable/ic_store_white_48dp" 
     android:drawableStart="@drawable/ic_store_white_48dp" 
     android:textColor="@android:color/white" 
     android:textColorHint="@color/loginHint" 
     android:textCursorDrawable="@null" 
     app:backgroundTint="@android:color/white"/> 
</android.support.design.widget.TextInputLayout> 
+0

Penso che 'minWidth' può essere omesso e' layout_width' impostato su 'match_parent' e le proprietà del colore non sono correlate alla visualizzazione di Icon. ci sono anche 'drawableEnd' e 'drawableRight' per mostrare un'icona alla fine. – AaA

0

Sì. Attualmente è un bug sul layout. Puoi provare a dare leftPadding a EditText o dare qualche blank_spaces prima del testo.

1

Ecco il mio schema di codice:

<android.support.design.widget.TextInputLayout 
      android:id="@+id/input_layout_username" 
      android:layout_width="match_parent" 

      android:layout_height="wrap_content"> 

      <EditText 
       android:id="@+id/input_username" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:singleLine="true" 
       android:drawableLeft="@drawable/icon_user" 
       android:drawableStart="@drawable/icon_user" 
       android:drawablePadding="10dp" 
       android:hint="User Name" /> 
     </android.support.design.widget.TextInputLayout> 

android: drawablePadding = "10dp"

Il suo lavoro

+0

Questo non funziona con supportLibVersion 24.2.0. Ho dovuto effettuare il downgrade a 24.1.1 – sidiabale

3

Questo è un bug che è stato segnalato su Android Issue Tracker

https://code.google.com/p/android/issues/detail?id=225836

ed è stato ora fissato sull'ultima versione della libreria di supporto Design (v25.0.1). Basta aggiungere la dipendenza richiesta al gradle build ...

dependencies { 
    compile 'com.android.support:design:25.0.1' 
} 
+0

, hai ragione, ora sono aggiornato al repository di supporto Android alla versione 40, quindi sono stato utilizzato per compilare 'com.android.support:design:25.0.1'. Ora il mio problema risolutivo risolvibile grazie. –

+0

mi ha salvato la giornata. lo stesso problema era con me –

Problemi correlati