java - programacion - manual de android en pdf
Android: configura solo un relleno de vista de texto programáticamente (3)
Por lo general, creo un método de utilidad simple para no olvidar, o extraviar los otros rellenos:
public static void setPaddingLeft(View v, int leftPaddingDp) {
int leftPaddingPx = dpToPx(leftPaddingDp);
v.setPadding(leftPaddingPx, v.getPaddingTop(), v.getPaddingRight(), v.getPaddingBottom());
}
Para ser usado más tarde de esta manera, suministrando unidades dp, como en xmls:
Utils.setPaddingLeft(myExampleTextView, 10)
Quiero establecer el relleno superior de una vista de texto mediante programación. Sé que puedes hacer esto con el método setPadding (). Pero el problema es que este método requiere 4 parámetros: izquierda, arriba, derecha, abajo. No quiero cambiar la parte izquierda, derecha e inferior, solo quiero cambiar el relleno superior.
¿Es eso posible?
También puedes usar este
setPadding(view, 500, Padding.TOP);
Con ayuda de una definición de @IntDef :
public static void setPadding(View view, int padding, @Padding.Direction int direction) {
switch (direction) {
case Padding.LEFT:
view.setPadding(padding, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());
return;
case Padding.RIGHT:
view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), padding, view.getPaddingBottom());
return;
case Padding.TOP:
view.setPadding(view.getPaddingLeft(), padding, view.getPaddingRight(), view.getPaddingBottom());
return;
case Padding.BOTTOM:
view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), padding);
return;
default:
}
}
public static class Padding {
@IntDef({Padding.LEFT, Padding.RIGHT, Padding.TOP, Padding.BOTTOM})
@Retention(RetentionPolicy.SOURCE)
public @interface Direction {}
public static final int LEFT = 0;
public static final int RIGHT = 1;
public static final int TOP = 2;
public static final int BOTTOM = 3;
}
utilizar
yourTextView.setPadding(0, 10, 0, 0);
Ajuste solo los parámetros que necesita y establezca los otros en cero.
Si necesita conservar otros rellenos existentes, use yourView.getPaddingLeft()
, yourView.getPaddingTop()
y así sucesivamente.