android - 如何在 api 21 下将矢量 drawable 设置为 EditText?

标签 android android-layout android-edittext android-vectordrawable

在我的应用程序中,我想在 EditText 的右侧显示矢量 drawable
我从 Vector Asset 添加了这个 drawable 矢量到 android studio 中!
但是当运行应用程序时显示强制关闭错误。
XML 代码:

<EditText
        android:id="@+id/signInFrag_phoneEdt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:hint="@string/insertYourPhoneNumber"
        android:maxLines="1"
        android:drawableRight="@drawable/ic_phone_android"
        android:paddingLeft="@dimen/_10sdp"
        android:paddingRight="@dimen/_10sdp"
        android:singleLine="true"
        android:maxLength="11"
        android:inputType="phone"
        android:textColorHint="@color/colorLightGray"
        android:textSize="@dimen/_12sdp"
        android:drawableEnd="@drawable/ic_phone_android"/>

我在 gradle.build 文件的 androiddefaultConfig 中添加了 vectorDrawables.useSupportLibrary = true

错误信息:

 Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_phone_android.xml from drawable resource ID #0x7f0700b3
    at android.content.res.Resources.loadDrawable(Resources.java:2096)
    at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
    at android.widget.TextView.<init>(TextView.java:814)
    at android.widget.EditText.<init>(EditText.java:60)
    at androidx.appcompat.widget.AppCompatEditText.<init>(AppCompatEditText.java:73)
    at androidx.appcompat.widget.AppCompatEditText.<init>(AppCompatEditText.java:69)
    at androidx.app

此外,我将这一行添加到 application 类中:AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)

我该如何解决这个问题?

最佳答案

试试看

app:drawableEndCompat="@drawable/ic_phone_android"

支持应该包含在build.gradle中:

implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'

关于android - 如何在 api 21 下将矢量 drawable 设置为 EditText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56819428/

相关文章:

android - 为什么我应该使用 PNG 而不是 JPG?

android - 如何实现注销功能

java - 将字符串从 EditText 转换为整数会导致应用程序在启动前停止工作

java - 如何从弹出 Activity 中的单选组获取编辑文本中的值?

java - 无法解析方法 setVisibility(int)

java - 解密在android中由openssl加密的文件

android - 取消注册BroadCast onDestroy()

android - ScrollView 仍然落后于它的区域

android - 出现虚拟键盘时适配组件

android - 如何为android VideoView实现暂停 Action ?