Освой программирование играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

TextInputEditText

В одном из обновлений Android Support Library 24.2.0 появилась интересная возможность использовать новый компонент android.support.design.widget.TextInputEditText, построенный на основе AppCompatEditText, который в свою очередь является родственником стандартного EditText.

Компонент специально разработан для работы в связке с TextInputLayout (Android Design Support Library).

Особый интерес представляет режим ввода пароля. Посмотрим на примере.

На панели инструментов его пока нет, поэтому пишем вручную.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:passwordToggleContentDescription="description"
        app:passwordToggleEnabled="true"
        app:passwordToggleTint="@color/colorAccent">

        <android.support.design.widget.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Пароль"
            android:inputType="textPassword"/>

    </android.support.design.widget.TextInputLayout>
</LinearLayout>

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

TextInputEditText

Справа видим значок глаза. Нажимаем на него, и пароль весь как на ладони.

TextInputEditText

Можно попробовать заменить значок глаза на свой через атрибут app:passwordToggleDrawable="@drawable/another_toggle_drawable" (я не пробовал).

Данный режим включится при использовании в android:inputType значений textPassword, numberPassword, textWebPassword, не действует для textVisiblePassword.

Обратите также внимание на атрибуты у TextInputLayout: passwordToggleContentDescription, passwordToggleDrawable (см. выше), passwordToggleEnabled, passwordToggleTint, passwordToggleTintMode - разберитесь с ними сами. Естественно, они также доступны и программным способом.

Реклама