Кнопка переключения пароля на TextInputEditText исчезает после щелчка в библиотеке поддержки 25.1.0
У меня есть TextInputEditText
в сочетании с TextInputLayout
с android:inputType="textPassword"
с помощью app:passwordToggleEnabled="true"
показать кнопку переключения пароля в TextInputEditText
как следующее изображение:
Проблема в том, что когда я нажимаю кнопку переключения пароля, она исчезает навсегда.
Это работало хорошо в com.android.support:design:24.2.0
версия.
я пропускаю что-то новое? это ошибка?
Некоторые настройки gradle проекта:
minSdkVersion 17
targetSdkVersion 25
скомпилируйте 'com.android.support:support-v4:25.1.0'
скомпилировать 'com.android.support:appcompat-v7:25.1.0'
скомпилируйте 'com.android.support:cardview-v7:25.1.0'
скомпилировать 'com.android.support:design:25.1.0'
Работает на 2 разных устройствах Android 6.0 (Marshmallow).
XML:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/TextLabelGray"
app:passwordToggleEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/profile_field_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/perfil_field_password"
android:inputType="textPassword"
android:maxLines="1"
android:maxLength="100"
android:imeOptions="actionNext"
android:imeActionLabel="@string/perfil_field_tipo_documento"
android:textColor="@color/colorAccent"
android:textSize="@dimen/perfil_text_view_text_size"
android:paddingStart="15dp"
android:paddingEnd="5dp"/>
</android.support.design.widget.TextInputLayout>
Если я использую app:passwordToggleDrawable
с пользовательским рисунком в TextInputLayout
это не исчезает.
Связанный стиль:
<style name="TextLabelGray" parent="TextAppearance.AppCompat">
<!--//hint color And Label Color in False State-->
<item name="android:textColorHint">@color/gray_text_color</item>
<item name="android:textColorHighlight">@color/gray_text_color</item>
<item name="android:textColorLink">@color/gray_text_color</item>
<item name="colorAccent">@color/gray_text_color</item>
<item name="colorControlNormal">@color/gray_text_color</item>
<item name="colorControlActivated">@color/gray_text_color</item>
</style>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">@color/colorControlNormal</item>
<item name="searchViewStyle">@style/AppTheme.MySearchViewStyle</item>
</style>
3 ответа
Изменить файл Gradle, следуя зависимости
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
В файле XML добавьте следующие строки для кнопки переключения в поле пароля
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:passwordToggleEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/text_input_edit_text_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Password"
android:imeActionId="@+id/login"
android:imeActionLabel="Login"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
tools:text="password" />
</android.support.design.widget.TextInputLayout>
Добавлять
<item name="passwordToggleDrawable">@drawable/design_password_eye</item>
<item name="passwordToggleTint">@color/design_tint_password_toggle</item>
<item name="passwordToggleContentDescription">@string/password_toggle_content_description</item>
на вашем стиле TextLabelGray, и он снова покажет кнопку переключения.
Этот код работает нормально:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16sp"
app:passwordToggleEnabled="true"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<android.support.design.widget.TextInputEditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password"
android:imeActionId="6"
android:inputType="textPassword"
android:maxLines="1"
android:fontFamily="@font/product_regular"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
android {
compileSdkVersion 28
defaultConfig {
applicationId "com"
minSdkVersion 24
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildToolsVersion '28.0.2'
}
implementation 'com.android.support:exifinterface:28.0.0-rc02'
implementation 'com.android.support:support-v4:28.0.0-rc02'
implementation 'com.android.support:support-v13:28.0.0-rc02'
implementation 'com.android.support:design:28.0.0-rc02'
implementation 'com.android.support:cardview-v7:28.0.0-rc02'
implementation 'com.android.support:recyclerview-v7:28.0.0-rc02'