backgroundTint 属性 为整个 TextInputEditText 着色
backgroundTint property colores the whole TextInputEditText
我只想为 editText 下划线设置颜色。我怎样才能实现它?正如我在标题中提到的,我尝试设置 backgroundTint 属性,但不是着色下划线,而是整个 TextInputEditText 被着色
xml
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/passwordInputLayout"
android:layout_width="384dp"
android:layout_height="75dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/password_hint"
android:textColorHint="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/usernameInputLayout"
app:passwordToggleEnabled="true"
app:passwordToggleTint="#8E8E93">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/passwordInputEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:text="@={authViewModel._password}"
android:background="#00000000"
android:textColor="@color/white"/>
</com.google.android.material.textfield.TextInputLayout>
而不是设置 backgroundTint
属性,尝试下面的代码(这将使您能够设置 TextInputEditText
的下划线颜色,从那时起您可以将其自定义为你的喜好:
activity_main.xml:
<com.google.android.material.textfield.TextInputLayout
style="@style/textInputLayout.BlueLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:hint="Username"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textfield.TextInputEditText
style="@style/textInputLayout.BlueLabel"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="16dp" />
</com.google.android.material.textfield.TextInputLayout>
styles.xml:
<resources>
<style name="textInputLayout.BlueLabel"
parent="Widget.Design.TextInputLayout">
<item name="hintTextAppearance">@style/AppTheme.TextFloatLabelAppearance</item>
</style>
<style name="AppTheme.TextFloatLabelAppearance"
parent="TextAppearance.Design.Hint">
<item name="hintTextColor">@color/teal_200</item> <!--Change underline color here-->
</style>
</resources>
如您现在所见,我们已将下划线颜色更改为蓝绿色:
唯一的警告 是 TextInputLayout
的外观并不是真正的 'material-like'。如果您 运行 遇到任何错误或问题,请在评论中告诉我。
我只想为 editText 下划线设置颜色。我怎样才能实现它?正如我在标题中提到的,我尝试设置 backgroundTint 属性,但不是着色下划线,而是整个 TextInputEditText 被着色
xml
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/passwordInputLayout"
android:layout_width="384dp"
android:layout_height="75dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/password_hint"
android:textColorHint="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/usernameInputLayout"
app:passwordToggleEnabled="true"
app:passwordToggleTint="#8E8E93">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/passwordInputEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:text="@={authViewModel._password}"
android:background="#00000000"
android:textColor="@color/white"/>
</com.google.android.material.textfield.TextInputLayout>
而不是设置 backgroundTint
属性,尝试下面的代码(这将使您能够设置 TextInputEditText
的下划线颜色,从那时起您可以将其自定义为你的喜好:
activity_main.xml:
<com.google.android.material.textfield.TextInputLayout
style="@style/textInputLayout.BlueLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:hint="Username"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textfield.TextInputEditText
style="@style/textInputLayout.BlueLabel"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="16dp" />
</com.google.android.material.textfield.TextInputLayout>
styles.xml:
<resources>
<style name="textInputLayout.BlueLabel"
parent="Widget.Design.TextInputLayout">
<item name="hintTextAppearance">@style/AppTheme.TextFloatLabelAppearance</item>
</style>
<style name="AppTheme.TextFloatLabelAppearance"
parent="TextAppearance.Design.Hint">
<item name="hintTextColor">@color/teal_200</item> <!--Change underline color here-->
</style>
</resources>
如您现在所见,我们已将下划线颜色更改为蓝绿色:
唯一的警告 是 TextInputLayout
的外观并不是真正的 'material-like'。如果您 运行 遇到任何错误或问题,请在评论中告诉我。