如何为EditText Android设置光标背景透明

时间:2016-12-19 23:29:57

标签: android android-edittext

当我触摸EditText以更改Android上的文字时,我遇到此问题:

enter image description here
红色光标周围出现一个白框,我需要它是透明的,以便正确显示EditText的线条。我该如何改变?

代码:

<EditText
            android:id="@+id/login_user_name_text"
            android:textCursorDrawable="@null"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/black"
            android:textSize="16sp"
            android:inputType="textEmailAddress"
            android:imeOptions="actionNext"
            android:maxLines="1"
            android:hint="@string/email"
            android:maxLength="60"
            />

编辑:我可以通过替换:

来修复它
<item name="android:background">@color/white</item>

<item name="android:background">@color/transparent</item>
style.xml中的

 <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowDisablePreview">true</item>
        <item name="android:background">@color/transparent</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    </style>

enter image description here

5 个答案:

答案 0 :(得分:2)

对不起,晚了 我认为你的样式中有<item name="android:popupBackground">@color/white</item>来自v21,只需删除它,它可以解决你的问题

答案 1 :(得分:1)

更好地在@android:color/transparent

上使用null代替android:textCursorDrawable="@android:color/transparent"

答案 2 :(得分:0)

将以下内容添加到EditText XML而不是null;

android:textCursorDrawable="@drawable/colorcursor"

然后,在drawable文件夹中创建一个名为colorcursor.xml的文件;

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <size android:width="3dp" />
    <solid android:color="#FFFFFF"  />
</shape>

答案 3 :(得分:0)

android:background设置为透明并不适合我。

在我的情况下,我将主题设置为父视图组,将父背景定义为某种颜色,因此它也应用于EditText。确保为父母设置的背景解决了它。

答案 4 :(得分:0)

另一种解决方案,当您在使用工具栏时在SearchView内遇到EditText 的问题时,该解决方案将起作用。

  1. 在您的活动XML中,将android:background="?attr/colorPrimary"属性添加到工具栏:

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:theme="@style/ToolBarStyle"
    android:background="?attr/colorPrimary"
    android:elevation="2dp" />
    
  2. 然后从您的<item name="android:background">@color/colorPrimary</item>中删除 ToolBarStyle在styles.xml中。

希望这可以帮助其他人为这种情况寻找解决方案。