studio programacion herramientas fundamentos con avanzado aplicaciones java android android-layout padding android-textview

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.