gpt4 book ai didi

android - TextInputLayout 下划线颜色在聚焦时不适应自定义颜色

转载 作者:行者123 更新时间:2023-11-30 05:00:48 33 4
gpt4 key购买 nike

不确定我遗漏了什么,但每次 edittext 聚焦时,下划线颜色都不会适应我设置的自定义颜色。引用这里是我的主题代码

<style name="EditTextHintWhite" parent="@style/AppTheme">
<item name="color">@color/white</item>
<item name="android:textColorHint">@color/white</item>
<item name="colorControlNormal">@color/white</item>
<item name="colorControlActivated">@color/white</item>
<item name="colorError">@color/white</item>
</style>

如您所见,我已将它们全部设置为白色,但不知何故,当 edittext 获得焦点时,下划线变为绿色

enter image description here

这是我的布局代码

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/EditTextHintWhite">

<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:shadowColor="@color/white"
android:singleLine="true"
android:textColor="@color/white"
app:backgroundTint="@color/white" />

</com.google.android.material.textfield.TextInputLayout>

最佳答案

具有 FilledBox 样式的下划线颜色由 boxStrokeColor 定义 属性。您可以将其添加到布局或自定义样式中。像这样的东西:

<style name="...." parent="Widget.MaterialComponents.TextInputLayout.FilledBox" >
<!-- underline color in FilledBox style -->
<item name="boxStrokeColor">@color/custom_selector_filled_stroke_color</item>
....
</style>

这是选择器的默认值:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?attr/colorPrimary" android:state_focused="true"/>
<!-- 4% overlay over 42% colorOnSurface -->
<item android:alpha="0.46" android:color="?attr/colorOnSurface" android:state_hovered="true"/>
<item android:alpha="0.38" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
<item android:alpha="0.42" android:color="?attr/colorOnSurface"/>
</selector>

聚焦时使用的颜色是第一行<item android:color="?attr/colorPrimary" android:state_focused="true"/>

enter image description here

在您的代码中使用(删除 app:backgroundTint 中的 EditText )

    <com.google.android.material.textfield.TextInputLayout
android:hint="@string/email"
android:theme="@style/EditTextHintWhite"
..>

<com.google.android.material.textfield.TextInputEditText
android:inputType="textEmailAddress"
android:maxLines="1"
android:textColor="@color/white"
../>

</com.google.android.material.textfield.TextInputLayout>

with(删除父级):

  <style name="EditTextHintWhite">
<item name="colorError">@color/white</item>
<item name="colorPrimary">@color/...</item>
<item name="colorOnSurface">@color/...</item>
</style>

如果您想要自定义下划线,请使用 app:boxStrokeColor="@color/text_input_layout_stroke_color" TextInputLayout 中的属性.

注意:使用com.google.android.material.textfield.TextInputEditText而不是 androidx.appcompat.widget.AppCompatEditText .

关于android - TextInputLayout 下划线颜色在聚焦时不适应自定义颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58281256/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com