我有一个editText,方法如下:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edtNombreActDetallesProductoServicio"
android:maxLines="1"
android:singleLine="true"
android:padding="14px"
android:layout_marginLeft="8px"
android:layout_marginRight="8px"
android:layout_marginBottom="8px"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@android:color/black"
android:background="@drawable/edit_text_redondeado"/>
我通过以下方式修改了你的backGround:
private void habilitarControles(boolean estado){
Drawable fondo = null;
if (true == estado){
fondo = (Drawable) getResources().getDrawable(R.drawable.edit_text_redondeado);
}
else{
fondo = (Drawable) getResources().getDrawable(R.drawable.edit_text_redondeado_deshabilitado);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
edtNombreActDetallesProductoServicio.setBackground(fondo);
}
其中:
edit_text_redondeado:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/white"/>
<stroke android:color="@color/colorPrimaryDark" android:width="2dp" />
<corners android:radius="7dp" />
</shape>
</item>
</selector>
和edit_text_redondeado_deshabilitado:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/colorGrisClaro"/>
<stroke android:color="@color/colorBlanco" android:width="2dp" />
<corners android:radius="7dp" />
</shape>
</item>
</selector>
但是当运行应用程序并更改backGround时,editText的宽度会减小。 (前两个editText)
我已经尝试通过动态编程更改backGround后解决了这个问题。 (即重新设置宽度值等于MATCH_PARENT,高度等于WRAP_CONTENT)
但问题仍然存在。
欢迎任何想法或建议