Password Visibility Toggle — Android Support Library, revision 24.2.0

Доброго дня! Пропоную увазі читачів переклад статті про оновлення Android Support Library і один важливий її новому вікні Password Visibility Toggle. Оригінал статті можна знайти на здесь.
Вважаю, що
Password Visibility Toggle
досить цікавий інструмент, причому досить простий, який заслуговує окремої уваги, тому прошу під кат.

Від себе хочу додати, що поточне оновлення Support Library вважається одним з найбільш масштабних: поділ на кілька маленьких модулів — безсумнівний плюс, який допоможе зменшити вагу вашого .apk файлу; велике оновлення API; купа deprecations ну і трошки bugfixes нам принесли.
Android Support Library була нещодавно оновлено з вельми цікавими змінами. Я звернула увагу на Password Visibility Toggle не випадково: буквально кілька днів тому я намагалася реалізувати цей функціонал в своєму робочому проекті без використання будь-яких бібліотек (між прочиим, Lisa Wray розробила чудову либу).
Я вихваляла це twitter.
image
Звісно, це було одним з перших речей, яку я використовувала, оскільки мені потрібно було негайно оновити свій проект.
Тут дуже базовий туторіал як з цим працювати.
Перший крок
Перший і найочевидніший — це, звичайно ж, оновити версію Support Library до 24.2.0. Сподіваюся, у тебе версії залежностей прописані в extra properties. Якщо так, то це означає, що тобі потрібно поміняти версію лише в ОДНОМУ місці. Якщо ні, то тобі прийдеться змінювати Gradle файл стільки разів, скільки версія зустрічається.
supportLibraryVersion = '24.2.0'

Далі
Наступним кроком буде створення TextInputEditText і завдання inputType одним з наступних варіантів: textPassword, numberPassword, textVisiblePassword or textWebPassword. Я пробувала всі 4 типи і помітила, що іконка видимості з'являється на всіх крім textVisiblePassword варіанту, що досить очевидно, оскільки ця опція спочатку задає видимість пароля по умолчаниюю.
<?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="@string/description"
app:passwordToggleDrawable="@drawable/another_toggle_drawable"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/colorAccent">

<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/password"
android:inputType="textPassword"/>
</android.support.design.widget.TextInputLayout>
</LinearLayout>

Цей код на gist.github автора.
Є 5 XML атрибутів пов'язаних з password visibility toggle.
  1. passwordToggleContentDescription дозволяє нам встановити рядок у якості content description
  2. passwordToggleDrawable дозволяє нам встановити іншу іконку, крім значка видимості visibility toggle icon
  3. passwordToggleEnabled дозволяє нам визначити чи ми хочемо, що б пароль було перемикається. Мені здається, що це має бути встановлено тільки якщо ти спеціально не хочеш зробити полі перемиканим
  4. passwordToggleTint ползволяет нам пофарбувати значок в який-небудь колір. Так само працює з custom drawable
  5. passwordToggleTintMode дозволяє нам поставити так званий режим змішування, в якому ми можемо застосувати колір фону.
Як звичайний Android UI компонент XML, так само можливо реалізувати це (passwordToggleContentDescription, passwordToggleDrawable, passwordToggleEnabled, passwordToggleTint and passwordToggleTintMode) безпосередньо кодом: необхідно створити TextInputEditText і викликати один з цих методів.
Зауваження
Після того, як я це заимплементила, я очікувала, що іконка видимості буде за замовчуванням перекреслена(посилання на мій твіт вище). Твіт нижче від Nick Butcher і навіть ліба від Lisa Wray демонструє теж саме. Це було кілька розчарування, коли я спробувала її і виявила, що за замовчуванням зміна значка було лише його затемнення. Це не досить очевидно, на мою думку, так як це могло призвести до омани, особливо таких користувачів як я, який вже пробували цю фічу на інших платформах і очікували такої ж поведінки. Мені необхідно було створити кастомный StateListDrawable і поставити в passwordToggleDrawable XML аттрибуте тип ефекту, якого я хочу досягти.
Твіт про Password Visibility Toggle від Nick Butcher.
Деякі слова спеціально не перекладав, так як вважаю, що вони можуть спотворити сприйняття розробника. Більшість слів вже вважається нормою в нашій роботі.
Якщо є пропозиції щодо покращення якості перекладу або що-то звучить просто незграбно — критика вітається.
На цьому все, спасибі.
p.s. За посилання на gist і twitter перепрошую, не знаю як їх можна прямо вставити в текст.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.