2015-06-19 22 views
12

Próbuję dodać lewą ikonę do mojego obiektu TextInputLayout, ale tekst przechodzi przez ikonę. Po dodaniu wypełnienia wszystkie elementy są ze sobą połączone.Lewa ikona w TextInputLayout

Próbowałem z

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

Ale to nie działa! powinny wdrożyć poziomej LinearLayout dla każdego wiersza, ale chciałbym mieć pewność, nie ma łatwiejszy sposób to zrobić

Oto mój układ Kod:

 <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

Dlaczego nie użyć "LinearLayout" lub "RelativeLayout"? Jeśli tak, możesz użyć 'android: layout_toRightOf', itp. – McGuile

+1

Tak, mógłbym to zrobić, ale" skopiowałbym "moją ilość kodu (mam 40 pól, więc chciałbym ją zoptymalizować) –

+0

Jeśli masz 40 pól, dlaczego nie skorzystać z ListView, a następnie wypełnić ListView z każdego wiersza? –

Odpowiedz

14

Upewnij się, że korzystasz z najnowszej Design biblioteki, wystarczy zarówno dla Design i AppCompat jest:

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

Spróbuj użyć zarówno zaprojektowanie biblioteki TextInputLayout i AppCompat na 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

Myślę, że 'minWidth' może być pominięty i' layout_width' ustawiony na 'match_parent', a właściwości koloru nie są związane z wyświetlaniem ikony. istnieją również 'drawableEnd' i 'drawableRight', aby pokazać ikonę na końcu. – AaA

0

Tak. Obecnie jest to błąd w Layout. Możesz spróbować oddać leftPadding do EditText lub dać puste miejsce przed tekstem.

1

Oto mój układ Kod:

<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"

Jego praca

+0

To nie działa z supportLibVersion 24.2.0. Musiałem obniżyć do 24.1.1 – sidiabale

3

Jest to błąd, który został zgłoszony w narzędziu do śledzenia problemów z Androidem

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

i to teraz została ustalona na najnowszej wersji Support Library Design (v25.0.1). Wystarczy dodać wymaganą zależność do stopnia kompilacji ...

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

masz rację, teraz jestem zaktualizowany repozytorium wsparcia dla Androida do wersji 40, a następnie używam kompilacji "com.android.support:design:25.0.1". Teraz moja poprawna wersja do rysowania rozwiązana dzięki. –

+0

zapisał mój dzień. ten sam problem był ze mną –