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

AppcompatEditText not showing cursor for android:textCursorDrawable="@null" and custom background set

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

<androidx.appcompat.widget.AppCompatEditText
                            android:id="@+id/edtPassCode1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            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:width="2px"
                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:width="1dp" />
    <solid android:color="#000000"  />
</shape>

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

删除并设置

    <androidx.appcompat.widget.AppCompatEditText
                                android:id="@+id/edtPassCode1"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                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" />

然后创建绘图xml:color_cursor.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>

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

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