Estoy tratando de configurar el relleno en un <shape>
archivo / diseño XML declarado. Pero sea lo que sea que establezca, nada cambia relacionado con el relleno. Si modifico otras propiedades, veo los efectos en la interfaz de usuario. Pero no funciona con acolchado. ¿Podría informarnos sobre las posibles razones por las que esto podría ocurrir?
Aquí está la forma XML que estoy tratando de diseñar:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1dp"
android:color="#ffffff"
android:dashWidth="2dp"/>
<solid android:color="@color/button_white_cover"/>
<corners android:radius="11dp"/>
<padding android:left="1dp"
android:top="20dp"
android:right="20dp"
android:bottom="2dp"/>
</shape>
fuente
<item>
acepta elementos infantiles para dibujar (aunque no está documentado explícitamente). Así es como puede lograr este comportamiento dentro de un solo xml.<shape><padding>
para ?Como se ha aludido en un par de comentarios, el mejor enfoque es envolver el elemento
<shape>
en un<item>
elemento y colocar el relleno allí. Sin embargo, hay otras opciones disponibles que se detallan en el enlace a continuación. p.ej<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="8dp" android:right="8dp" android:top="8dp" android:bottom="8dp"> <shape android:shape="rectangle"> ... </shape> </item> </layer-list>
Dependiendo de sus necesidades, en lugar de usar una lista de capas, puede usar cualquiera de los siguientes tipos dibujables:
Para obtener más información sobre los tipos de elementos de diseño disponibles, consulte esta documentación de Android
Fuentes:
fuente
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
Puedes probar las inserciones:
<?xml version="1.0" encoding="UTF-8"?> <inset xmlns:android="http://schemas.android.com/apk/res/android" android:insetBottom="2dp" android:insetLeft="1dp" android:insetRight="20dp" android:insetTop="20dp"> <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="#ffffff" android:dashWidth="2dp" /> <solid android:color="@color/button_white_cover" /> <corners android:radius="11dp" /> </shape> </inset>
fuente
La respuesta de Lyobomyr funciona, pero aquí se aplica la misma solución pero sin la sobrecarga de crear un nuevo elemento de diseño, lo que minimiza el desorden de archivos:
https://stackoverflow.com/a/3588976/578746
Copie / pegue la respuesta de forma anónima en la respuesta SO anterior:
<item android:left="6dp" android:right="6dp"> <shape android:shape="rectangle"> <gradient android:startColor="#ccd0d3" android:centerColor="#b6babd" android:endColor="#ccd0d3" android:height="1px" android:angle="0"/> </shape> </item>
fuente
Resolví este problema así:
<shape android:shape="oval" > <stroke android:width="4dp" android:color="@android:color/transparent" /> <solid android:color="@color/colorAccent" /> </shape>
acaba de agregarle un trazo transparente.
fuente