更改单一控件的edittext线颜色?

时间:2016-03-17 19:33:58

标签: android android-edittext

我有一个驻留在黑暗背景上的edittext。屏幕的设计需要带有while行和白色文本的edittext才能显示。我认为这将是一项简单的任务,但我遇到了一个问题。

我已经查看了StackOverflow的问题,但所有的答案基本上都指向改变整个应用程序中所有edittext控件的样式;这不是一个选项,因为这只会在一个屏幕上影响2个。

我尝试了以下内容,但是线条和提示都不是白色;相反,两者仍然是黑色的。但是,当我在控件中输入内容时,文本是白色的。

OnInit()

drawableBottom和textColorHint都试图为线条着色并将文字提示白色。

有没有人对我在这里缺少什么有任何建议?任何帮助,将不胜感激!

谢谢!

3 个答案:

答案 0 :(得分:2)

当您定位API 21及更高版本时,应使用backgroundTint属性:

<EditText
    android:id="@+id/text_login"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:hint="@string/hint_login"

    android:textColor="@color/white"
    android:backgroundTint="@color/white"

    android:textColorHint="@android:color/darker_gray"
    android:textColorHighlight="@color/colorPrimaryDark2"

    android:imeOptions="actionNext"
    android:singleLine="true"

    />

如果您的API级别低于21,则应使用自定义drawable来更改下划线。您可以轻松地从this site创建九个补丁图像,然后将其用作视图的背景。

答案 1 :(得分:1)

我们假设EditText上有"black" background。您可以根据自己的背景更改代码。

创建一个xml文件,该文件将被设置为EditText的背景。 xml文件说bg.xml看起来像 -

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="-2dp" android:left="-2dp" android:right="-2dp">
        <shape android:shape="rectangle">
            <stroke android:width="1dp" android:color="#ffffffff" />
            <solid android:color="@android:color/black" /> //Change this color according to your background
        </shape>
    </item>
</layer-list>

你的EditText应该是 -

<EditText
            android:id="@+id/text_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/hint_login"
            android:textColorHint="#FFFFFF"
            android:imeOptions="actionNext"
            android:singleLine="true"
            android:textColor="#FFFFFF"
            android:background="@drawable/bg"
            />

答案 2 :(得分:1)

此问题有一个简单的解决方法。您可以使用具有透明背景的EditText,并在其底部使用视图。设置该视图的颜色,它看起来像一条线。

enter image description here

Layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/background_dark"
    android:orientation="vertical"
    android:padding="30dp">


    <EditText
        android:id="@+id/text_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:hint="Hint here"
        android:imeOptions="actionNext"
        android:singleLine="true"
        android:textColor="#FFFFFF"
        android:textColorHint="#FFFFFF" />

    <View
        android:id="@+id/editTextBottom"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@android:color/white" />
</LinearLayout>

快乐编码:)

相关问题