2015-06-19 2 views
12

Я пытаюсь добавить левую иконку в свой TextInputLayout, но текст перечеркивает значок. Когда я добавляю отступы, все перемещается вместе.Значок слева в TextInputLayout

Я попытался с

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

Но это не работает! я должен осуществить горизонтальное LinearLayout для каждой строки, но я хотел бы, чтобы убедиться, что нет более простого способа сделать это

Вот мой код макет:

 <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

Почему бы не использовать 'LinearLayout' или' RelativeLayout'? Если вы это сделаете, вы можете использовать 'android: layout_toRightOf' и т. Д. – McGuile

+1

Да, я мог бы это сделать, но я бы« продублировал »количество моего кода (у меня есть 40 полей, поэтому я бы хотел его оптимизировать) –

+0

Если у вас есть 40 полей, почему бы не использовать ListView, а затем заполнить ListView каждой строкой? –

ответ

14

Убедитесь, что вы используете последнюю Design библиотеку, все, что нужно для обоих Design и AppCompat является:

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

Попробуйте использовать как библиотеку Design в TextInputLayout и AppCompat-х 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

Я думаю, 'minWidth' может быть пропущен, а' layout_width' установлен в 'match_parent', а свойства цвета не связаны с показом значка. есть также «drawableEnd» и «drawableRight», чтобы показать значок в конце. – AaA

0

Да. В настоящее время его ошибка в макете. Вы можете попробовать дать leftPadding в EditText или дать пробелы перед текстом.

1

Вот мой код макета:

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

андроида: drawablePadding = "10dp"

Его работа

+0

Это не работает с поддержкойLibVersion 24.2.0. Я должен был понизить до 24.1.1 – sidiabale

3

Это ошибка, что было сообщено на Android Отслеживание выпуска

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

и это теперь было зафиксировано на последней версии библиотеки Design Support (v25.0.1). Просто добавьте необходимую зависимость к градиенту построения ...

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

, вы правы, теперь я обновляю репозиторий поддержки android до версии 40, тогда я использую compile 'com.android.support:design:25.0.1'. Теперь моя полезная правая проблема решила спасибо. –

+0

спас мой день. такая же проблема была со мной –

Смежные вопросы