AppcompatEditText 未显示 android:textCursorDrawable="@null" 和自定义背景集的光标

Posted

技术标签:

【中文标题】AppcompatEditText 未显示 android:textCursorDrawable="@null" 和自定义背景集的光标【英文标题】:AppcompatEditText not showing cursor for android:textCursorDrawable="@null" and custom background set 【发布时间】:2021-10-11 22:40:06 【问题描述】:

我正面临这个问题,应用了所有解决方案,但不确定我什么时候会出错。请指导我。

<androidx.appcompat.widget.AppCompatEditText
                            android:id="@+id/edtPassCode1"
                            android:layout_
                            android:layout_
                            android:cursorVisible="true"
                            android:focusable="true"
                            android:focusableInTouchMode="true"
                            android:background="@drawable/bg_pass_code"
                            android:digits="0123456789"
                            android:textCursorDrawable="@null"
                            android:fontFamily="@font/montserrat"
                            android:imeOptions="actionNext"
                            android:inputType="numberPassword"
                            android:maxLength="1"
                            android:padding="@dimen/_10sdp"
                            android:paddingStart="@dimen/_15sdp"
                            android:paddingEnd="@dimen/_15sdp"
                            android:singleLine="true"
                            android:text="@=viewModel.passCode1"
                            android:textColor="@color/colorPrimary"
                            android:textColorHint="@color/colorPrimary"
                            android:textSize="@dimen/_12ssp"
                            app:layout_constraintEnd_toStartOf="@+id/edtPassCode2"
                            app:layout_constraintHorizontal_chainStyle="spread"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent" />

AppcompatEditText -> 背景:@drawable/bg_pass_code

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:left="-1dp"
        android:right="-1dp"
        android:top="-1dp">
        <shape android:shape="rectangle">

            <solid android:color="#00000000" />
            <stroke
                android:
                android:color="#45ada8" />

        </shape>
    </item>
</layer-list>

我也尝试在 textCursorDrawable 中应用 drawable。但它也不起作用。

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

【问题讨论】:

【参考方案1】:

不要将android:textCursorDrawable 属性用于@null,这不是推荐的方式。

删除并设置

    <androidx.appcompat.widget.AppCompatEditText
                                android:id="@+id/edtPassCode1"
                                android:layout_
                                android:layout_
                                android:cursorVisible="true"
                                android:focusable="true"
                                android:focusableInTouchMode="true"
                                android:background="@drawable/bg_pass_code"
                                android:digits="0123456789"
                                android:fontFamily="@font/montserrat"
                                android:imeOptions="actionNext"
                                android:inputType="numberPassword"
                                android:maxLength="1"
                                android:padding="@dimen/_10sdp"
                                android:paddingStart="@dimen/_15sdp"
                                android:paddingEnd="@dimen/_15sdp"
                                android:singleLine="true"
                                android:text="@=viewModel.passCode1"
                                android:textColor="@color/colorPrimary"
                                android:textColorHint="@color/colorPrimary"
                                android:textSize="@dimen/_12ssp"
                                app:layout_constraintEnd_toStartOf="@+id/edtPassCode2"
                                android:textCursorDrawable="@drawable/color_cursor"
app:layout_constraintHorizontal_chainStyle="spread"
                                app:layout_constraintStart_toStartOf="parent"
                                app:layout_constraintTop_toTopOf="parent" />

然后创建drawalble xml:color_cursor.xml

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

EditText 属性上有一个白色光标。

【讨论】:

不行,我也试过这种方法,有问题已经解释过了。【参考方案2】:

我已经解决了这个问题。我错误地将&lt;item name="colorAccent"&gt;@color/white&lt;/item&gt; 放入了我应用主题的theme.xml 文件中。我已经用我的光标颜色替换了,它工作正常。

【讨论】:

以上是关于AppcompatEditText 未显示 android:textCursorDrawable="@null" 和自定义背景集的光标的主要内容,如果未能解决你的问题,请参考以下文章

Android AppCompatEditText,AppCompatTextView, setText 无ID

Android设备未显示在adb列表中[关闭]

Rails logger.error 未显示在 SysLog 中

Angular 2路由器:未显示子项

>= 和 <= 的 Mysql 查询未显示正确的结果

媒体查询未在 Ipad 应用程序上显示任何输出