You may say this is duplicated but it's not. Actually I found solutions but none worked perfectly. Last solution was using TextInputLayout
plus EditText
inside it but is there a way to move the toggle button to other side of EditText
? If not, so it's of no use for me.
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="130dp"
android:layoutDirection="rtl"
app:passwordToggleEnabled="true">
<EditText
android:id="@+id/edlrPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:paddingRight="10dp"
android:paddingLeft="10dp"
android:layoutDirection="rtl"
android:textAlignment="viewStart"
android:inputType="textPassword"
android:maxLines="1"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
Again, problem is that the toggle button places on the EditText
making part of it invisible.
I have tried these piece of code too:
if (b)
editText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
else
editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT);
Also I tried this code:
if (b)
editText.setInputType(InputType.TYPE_CLASS_TEXT);
else
editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Both work for the first change, and then the text inside EditText
remains visible all the time.
What should I do? Any help is appreciated.
UPDATE: So I just noticed I needed to add android:layoutDirection="rtl"
to the TextInputLayout
! Previously I had added it to just editText
, causing a conflict (as TextInputLayout
was ltr
by default) which made toggle button cover the editText
. By the way when I put my editText
inside a TextInputLayout
, then setTransformationMethod(new PasswordTransformationMethod())
also works perfectly though I don't need it anymore!
Thank all for participation.