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
文件中。我已经用我的光标颜色替换了它,它工作正常。
我遇到了这个问题,应用了所有解决方案,但不确定我什么时候出错了。请指导我。
<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
文件中。我已经用我的光标颜色替换了它,它工作正常。