Android setCompoundDrawablePadding not working



我的布局中有一个TextInputEditText,我需要添加一个可绘制的末尾。可绘制的末端出现了,但我无法添加可绘制的填充末端。

下面是我尝试过的一段代码:

editText.setCompoundDrawablesWithIntrinsicBounds(null, null, getResources().getDrawable(R.drawable.error), null);
editText.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.image_padding));

由于getResources().getDrawable已弃用,因此最好使用ContextCompat.getDrawable()。如果drawablePadding没有更改,并且不需要以编程方式处理,请尝试在xml文件中设置它。

editText.setCompoundDrawablesWithIntrinsicBounds(
null, 
null, 
ContextCompat.getDrawable(context, R.drawable.error), 
null
);

布局中的xml:

<android.support.design.widget.TextInputEditText
android:id="@+id/editText"
...
android:drawablePadding="@dimen/image_padding"
/>

如果您正在使用android矢量可绘制,并且希望对21以下的API具有向后兼容性,请添加以下代码段。

应用程序内构建级别:

android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}

在应用程序类中:

public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
}

相关内容

  • 没有找到相关文章

最新更新