Значок переключения пароля textinputlayout заблокирован

1

Я не знаю, как объяснить словами, но пусть прикрепленная картинка говорит вам?

Изображение 174551

По сути, значок setError блокирует значок переключения пароля.

Изначально я думал, что это простая проблема макета, где я поиграл с цветами, фоном и т.д. Однако, так много проб и ошибок, но я не могу найти решение этой проблемы.

Я опубликую свой XML здесь для вашей справки:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bokeh"
tools:context=".RegistrationActivity">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:layout_width="495dp"
        android:layout_height="130dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="15dp"
        android:src="@drawable/loginboa" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="30dp"
    android:layout_marginRight="30dp"
    android:layout_marginTop="10dp"
    android:orientation="vertical"
    android:weightSum="1">

    <EditText
        android:id="@+id/etSignUpUsername"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/ic_user"
        android:drawablePadding="20dp"
        android:background="@drawable/edittext_bg"
        android:hint="Name"
        android:textColorHint="#a3a1a1"
        android:inputType="textPersonName"
        android:padding="10dp"
        android:layout_weight="0.10"/>

    <EditText
        android:id="@+id/etSignUpEmail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.10"
        android:drawableLeft="@drawable/ic_email"
        android:drawablePadding="20dp"
        android:background="@drawable/edittext_bg"
        android:layout_marginTop="3dp"
        android:hint="Email"
        android:inputType="textEmailAddress"
        android:padding="10dp"
        android:textColorHint="#a3a1a1" />

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        app:passwordToggleEnabled="true"
        app:hintEnabled="false">

        <EditText
            android:id="@+id/etSignUpPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Password"
            android:textColorHint="#a3a1a1"
            android:inputType="textPassword"
            android:drawableStart="@drawable/ic_password"
            android:background="@drawable/edittext_bg"
            android:layout_marginTop="3dp"
            android:drawablePadding="20dp"
            android:padding="10dp"
            android:layout_weight="0.09"/>

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


    <TextView
        android:id="@+id/tvPasswordHint"
        android:visibility="gone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="Password must contain at least 8 characters including 
        one uppercase letter, one lowercase letter, one number &amp; one 
        special character."
        android:textAlignment="center"
        android:textSize="12sp"
        android:textStyle="bold|italic"
        android:textColor="#ff0000"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.623" />

    <EditText
        android:id="@+id/etSignUpDepartment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.09"
        android:drawableLeft="@drawable/ic_department"
        android:drawablePadding="20dp"
        android:background="@drawable/edittext_bg"
        android:layout_marginTop="3dp"
        android:hint="Department"
        android:inputType="text"
        android:padding="10dp"
        android:textColorHint="#a3a1a1" />

    <EditText
        android:id="@+id/etSignUpRole"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.09"
        android:drawableLeft="@drawable/ic_role"
        android:drawablePadding="20dp"
        android:background="@drawable/edittext_bg"
        android:layout_marginTop="3dp"
        android:hint="Role"
        android:inputType="text"
        android:padding="10dp"
        android:textColorHint="#a3a1a1" />

    <Button
        android:id="@+id/btnRegister"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="25dp"
        android:background="@drawable/button_bg"
        android:text="SIGN UP"
        android:textSize="20dp"
        android:textColor="#000000"/>

    <TextView
        android:id="@+id/tvUserLogin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="8dp"
        android:text="Already have an account? LOGIN NOW! "
        android:textColor="#ba080000"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.382"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tvInfo"
        app:layout_constraintVertical_bias="0.437" />

</LinearLayout>
</LinearLayout>

Я мог бы просто создать еще один объект в виде красного значка с восклицательным знаком, но мне понравилось, как появляется сообщение об ошибке.

Если возможно, я бы хотел сохранить этот метод, но, конечно, с лучшей компоновкой. Таким образом, кто-нибудь знает, как я могу это исправить? Спасибо.

Теги:
android-layout
android-textinputlayout

1 ответ

0

Вот путь

  <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        app:passwordToggleEnabled="true"
        app:hintEnabled="false">

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/etSignUpPassword"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Password"
                android:textColorHint="#a3a1a1"
                android:inputType="textPassword"
                android:drawableStart="@drawable/ic_lock_outline_black_24dp"
                android:layout_marginTop="3dp"
                android:padding="10dp"
                android:layout_weight="0.09"/>

            <ImageButton
                android:layout_gravity="center_vertical"
                android:background="@android:color/transparent"
                android:src="@drawable/ic_visibility_black_24dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

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

Изображение 174551

  • 1
    Здравствуй! Спасибо за ответ! Однако я попробовал ваше решение, добавив кнопку изображения для глаза, чего я пытался избежать, потому что мне было бы лучше, если бы я мог избежать отображения пароля программным способом. Отсюда и причина, по которой я все еще хотел бы принять встроенный пароль textinputlayout для переключения видимости. Я по-прежнему буду одобрять ваше решение, поскольку, кто знает, действительно ли я не смог решить начальную проблему, тогда я просто воспользуюсь вашим решением в качестве обходного пути :) Спасибо и я ценю это!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню