【问题标题】:Change color bottom line of EditText更改 EditText 的颜色底线
【发布时间】:2015-10-06 07:13:13
【问题描述】:

我在TextInputLayout 中有一个EditText

<android.support.design.widget.TextInputLayout
    android:id="@+id/inputTextUser"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout" >

    <EditText
        android:id="@+id/userName"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:ems="10"
        android:hint="@string/user_hint"
        android:singleLine="true"
        android:textColor="@color/white"
        android:textSize="16sp" >

        <requestFocus />
    </EditText>
</android.support.design.widget.TextInputLayout>

我想将底线颜色更改为白色,我尝试了this 解决方案,但它不适用于我:

    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColorHint">@color/white</item>
        <item name="colorControlNormal">@color/white</item>
        <item name="colorControlActivated">@color/white</item>
        <item name="colorControlHighlight">@color/white</item>
    </style>

    <style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
        <item name="android:textColor">@color/light_blue_A400</item>
        <item name="android:textSize">12sp</item>
    </style>

这是样式主题后的图像:

有什么建议可以在不对焦和对焦时改变颜色底线吗?

【问题讨论】:

  • 我认为是您在样式中设置的 colorAccent 颜色。
  • 我设置的颜色是Pinkcolor
  • 只需转到您的 color.xml 文件并将 #00FF00 更改为您需要的颜色。即白色的#FFFFFF。
  • colorAccent 是Pink 颜色。你可以看到底线是黑色的。

标签: android android-edittext android-styles android-design-library


【解决方案1】:

使用这个:

mEditText.getBackground().setColorFilter(YOUR_COLOR_HERE, PorterDuff.Mode.SRC_IN);

例如:

mEditText.getBackground().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_IN)

【讨论】:

  • 我可以通过样式或 xml 做到这一点吗?
  • 在 stackoverflow 上查看这个答案 - link
  • 我在 stackoverflow 上看到了这个答案,但它不适用于我。
  • @AkashSingh... 你节省了我的时间和时间。 +1 投票给你。谢谢。
【解决方案2】:

您可以在这里创建一个简单的样式http://android-holo-colors.com/ 这将生成所需的具有不同颜色的图像和具有正确属性的 style.xml。

【讨论】:

    【解决方案3】:

    使用java codestyles你可以改变这个color:-

    在你的

    上使用这个
    EditTextmUserName.getBackground().setColorFilter(getResources().getColor(R.color.yourWhiteColor), PorterDuff.Mode.SRC_ATOP);
    

    并使用样式:- 使用 appcompat 主题

    <style name="AppTheme" parent="Theme.AppCompat.Light">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/primaryColor</item>
            <item name="colorPrimaryDark">@color/primaryColor</item>
            <item name="colorAccent">@color/primaryColor</item>
            <item name="windowActionBar">false</item>
            <item name="windowNoTitle">true</item>
            <item name="android:textColorPrimary">@android:color/white</item>
            <item name="actionMenuTextColor">@android:color/holo_blue_dark</item>
            <item name="android:actionMenuTextColor">@android:color/holo_blue_dark</item>
            <item name="android:windowBackground">@android:color/white</item>
    
        </style>
    

    将您的 colorAccent 更改为白色

    <item name="colorAccent">@color/whiteColor</item>
    

    【讨论】:

      【解决方案4】:

      backgroundTint 属性负责底线的颜色。

      android:backgroundTint="@color/yourColor"
      

      要删除底线,请使用透明颜色

      android:backgroundTint="@android:color/transparent"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-14
        • 1970-01-01
        • 2014-12-21
        • 1970-01-01
        • 1970-01-01
        • 2017-07-23
        • 1970-01-01
        相关资源
        最近更新 更多