如何在android中关闭material设计EditText的默认功能?
How to turn off default features of material design EditText in android?
我在我的 Android 应用程序中使用了 material 设计 'com.google.android.material:material:1.3.0'(只是为密码字段添加密码切换)。我不希望其他 material 功能包含在我的 EditText.As 中,您可以在屏幕截图上看到,出现蓝线,并且当触摸 PasswordEditText 时提示文本也会出现。我怎样才能去掉它们并只保留 material 设计功能中的密码切换?
XML 的 PasswordEditText:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/editTextTextPersonName2"
android:layout_width="match_parent"
android:layout_marginTop="36dp"
android:layout_marginRight="46dp"
android:layout_marginLeft="46dp"
android:paddingLeft="5dp"
android:layout_height="wrap_content"
android:ems="10"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/ic_baseline_security_24"
android:hint="Parol"
app:passwordToggleEnabled="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="20sp"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:inputType="textPassword"
android:drawablePadding="5dp"/>
</com.google.android.material.textfield.TextInputLayout>
您需要进行两项更改:
- 删除蓝色下划线并使用您自己的背景:
您需要将 app:boxBackgroundMode="none"
设置为您的 TextInputLayout
编辑:
如果单独这样做不起作用,请添加到您的 TextInputLayout
:
app:boxStrokeWidth="0dp"
app:boxStrokeWidthFocused="0dp"
- 要禁用浮动提示:
您需要对 TextInputLayout
使用 app:hintEnabled="false"
并将提示设置为 TextInputEditText
所以你的最终代码看起来像这样:(请添加你的背景,因为我删除了测试)
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/editTextTextPersonName2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="46dp"
android:layout_marginTop="36dp"
android:layout_marginRight="46dp"
android:ems="10"
android:paddingLeft="5dp"
app:hintEnabled="false"
android:background="@drawable/border"
app:boxBackgroundMode="none"
app:boxStrokeWidth="0dp"
app:boxStrokeWidthFocused="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:passwordToggleEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawablePadding="5dp"
android:hint="Parol"
android:inputType="textPassword"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:textSize="20sp" />
</com.google.android.material.textfield.TextInputLayout>
删除:
android:background="@drawable/edit_text_background"
更新:
android:drawableStart="@drawable/ic_baseline_security_24"
app:passwordToggleEnabled="true"
至:
app:startIconDrawable="@drawable/ic_baseline_security_24"
app:endIconMode="password_toggle"
并使用 TextInputLayout 的标准功能实现相同的布局:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/editTextTextPersonName2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.App.CornerCircle"
app:boxStrokeColor="@color/...."
app:startIconDrawable="@drawable/..."
app:endIconMode="password_toggle"
app:placeholderText="Parol"
>
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="20sp"
android:inputType="textPassword"
/>
</com.google.android.material.textfield.TextInputLayout>
与:
<style name="ShapeAppearanceOverlay.App.CornerCircle" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
我在我的 Android 应用程序中使用了 material 设计 'com.google.android.material:material:1.3.0'(只是为密码字段添加密码切换)。我不希望其他 material 功能包含在我的 EditText.As 中,您可以在屏幕截图上看到,出现蓝线,并且当触摸 PasswordEditText 时提示文本也会出现。我怎样才能去掉它们并只保留 material 设计功能中的密码切换?
XML 的 PasswordEditText:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/editTextTextPersonName2"
android:layout_width="match_parent"
android:layout_marginTop="36dp"
android:layout_marginRight="46dp"
android:layout_marginLeft="46dp"
android:paddingLeft="5dp"
android:layout_height="wrap_content"
android:ems="10"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/ic_baseline_security_24"
android:hint="Parol"
app:passwordToggleEnabled="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="20sp"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:inputType="textPassword"
android:drawablePadding="5dp"/>
</com.google.android.material.textfield.TextInputLayout>
您需要进行两项更改:
- 删除蓝色下划线并使用您自己的背景:
您需要将 app:boxBackgroundMode="none"
设置为您的 TextInputLayout
编辑:
如果单独这样做不起作用,请添加到您的 TextInputLayout
:
app:boxStrokeWidth="0dp"
app:boxStrokeWidthFocused="0dp"
- 要禁用浮动提示:
您需要对 TextInputLayout
使用 app:hintEnabled="false"
并将提示设置为 TextInputEditText
所以你的最终代码看起来像这样:(请添加你的背景,因为我删除了测试)
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/editTextTextPersonName2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="46dp"
android:layout_marginTop="36dp"
android:layout_marginRight="46dp"
android:ems="10"
android:paddingLeft="5dp"
app:hintEnabled="false"
android:background="@drawable/border"
app:boxBackgroundMode="none"
app:boxStrokeWidth="0dp"
app:boxStrokeWidthFocused="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:passwordToggleEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawablePadding="5dp"
android:hint="Parol"
android:inputType="textPassword"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:textSize="20sp" />
</com.google.android.material.textfield.TextInputLayout>
删除:
android:background="@drawable/edit_text_background"
更新:
android:drawableStart="@drawable/ic_baseline_security_24"
app:passwordToggleEnabled="true"
至:
app:startIconDrawable="@drawable/ic_baseline_security_24"
app:endIconMode="password_toggle"
并使用 TextInputLayout 的标准功能实现相同的布局:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/editTextTextPersonName2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.App.CornerCircle"
app:boxStrokeColor="@color/...."
app:startIconDrawable="@drawable/..."
app:endIconMode="password_toggle"
app:placeholderText="Parol"
>
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="20sp"
android:inputType="textPassword"
/>
</com.google.android.material.textfield.TextInputLayout>
与:
<style name="ShapeAppearanceOverlay.App.CornerCircle" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>