Подтвердить что ты не робот

Значок слева в 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>
4b9b3361

Ответ 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