Значок слева в TextInputLayout
Я пытаюсь добавить Left Icon в свой 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>
Ответы
Ответ 1
Убедитесь, что вы используете последнюю библиотеку Design
, все, что вам нужно для Design
и AppCompat
:
compile 'com.android.support:design:23.2.0'
Попробуйте использовать библиотеку дизайна 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>
Ответ 2
Вот мой макет кода:
<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"
Его работа
Ответ 3
Это ошибка, о которой сообщалось в Android Issue Tracker
https://code.google.com/p/android/issues/detail?id=225836
и теперь он исправлен в последнем выпуске библиотеки поддержки дизайна (v25.0.1). Просто добавьте требуемую зависимость к сборке gradle...
dependencies {
compile 'com.android.support:design:25.0.1'
}
Ответ 4
Да. В настоящее время его ошибка в макете.
Вы можете попробовать дать leftPadding в EditText или дать пробелы перед текстом.
Ответ 5
Это просто, при добавлении passwordToggleEnabled
автоматически добавляется значок глаза справа, и drawableLeft
исчезает. поэтому вы должны удалить drawableLeft
и просто использовать drawableStart
.
<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:drawablePadding="50dp"
android:drawableStart="@drawable/ic_store_white_48dp"
android:hint="Calle"
android:inputType="text" />
Ответ 6
С помощью библиотеки компонентов материала вы можете изменить левый значок в TextInputLayout
, используя атрибут app:startIconDrawable
.
Что-то вроде:
<com.google.android.material.textfield.TextInputLayout
android:hint="Hint text"
app:startIconDrawable="@drawable/ic_add_24px"
...>
<com.google.android.material.textfield.TextInputEditText/>
</com.google.android.material.textfield.TextInputLayout>
![enter image description here]()