当前位置: 首页 > 知识库问答 >
问题:

文本输入布局下划线颜色不适应聚焦时的自定义颜色

陈畅
2023-03-14

不确定我遗漏了什么,但每次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聚焦时,下划线变为绿色

这是我的代码从布局

<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>

共有1个答案

赵锐
2023-03-14

填充框样式的下划线颜色由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>

聚焦时使用的颜色是第一行

在代码使用中(删除编辑文本中的应用程序:backgroundTint

    <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>

与(删除父):

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

如果您想要自定义下划线,请在TextInputLayout中使用app:boxStrokeColor=“@color/text\u input\u layout\u stroke\u color”属性。

注意:使用com.google.Android布料文本字段。text输入的是text而不是androidx。appcompat。小装置。AppCompatiEditText

 类似资料:
  • 我正在使用新的谷歌设计库(com . Android . support:design:22 . 2 . 0 ),我在使用Android . support . design . widget . textinputlayout时遇到了问题。 如果我以编程方式设置它的EditText,浮动提示颜色是灰色而不是强调色。如果用户自己填充字段(EditText)或者如果他改变字段的预定义值,它就工作。

  • 但不幸的是,它无法工作。 这是我今天尝试的最后一次尝试,但没有奏效: 和样式:

  • 问题内容: 可以仅更改文本下面的线条颜色?我想看到类似红色字母的下面有一条蓝线的东西,但是我找不到如何完成它的方法。 问题答案: 您可以通过以下CSS规则作为示例: 如果较旧的浏览器不支持此规则,则可以使用以下解决方案: 用底线设置单词:

  • 嗨,我在我的应用程序中使用TextInputLayout。我想将提示文本颜色和浮动标签颜色(聚焦和不聚焦)设置为白色。我已经尝试了下面的代码。 它适用于Lollipop,但不适用于较低的versions.How我可以在较低的版本中实现相同的功能吗?

  • 问题内容: 我在这里有此代码: 首先,如您所见,它带有下划线()。其次,所有文字均为红色。那么,是否有将文本($ username)留为红色而下划线为黑的情况? 问题答案: 不能。您最好的方法是使用其他颜色的,但这并不是 真正的重点 。