java 자바 - 안드로이드:프로그래밍 방식으로 textview의 한 패딩 설정




서브프레임 테두리 (4)

용도

    yourTextView.setPadding(0, 10, 0, 0);

필요한 매개 변수 만 조정하고 다른 매개 변수는 0으로 설정하십시오.

다른 기존 패딩을 유지해야하는 경우에는 사용자 의 yourView.getPaddingLeft() , yourView.getPaddingTop() 등을 사용하십시오.

프로그래밍 방식으로 텍스트 뷰의 위쪽 패딩을 설정하려고합니다. setPadding () 메서드를 사용하여이 작업을 수행 할 수 있다는 것을 알고 있습니다. 그러나 문제는이 방법은 왼쪽, 위쪽, 오른쪽, 아래쪽의 4 가지 매개 변수가 필요하다는 것입니다. 왼쪽, 오른쪽 및 아래쪽을 변경하고 싶지는 않지만 위쪽 채우기 만 변경하고 싶습니다.

그게 가능하니?


이것을 사용할 수도 있습니다.

setPadding(view, 500, Padding.TOP);

@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;
}

나는 보통 잊지 않거나 다른 패딩을 놓치지 않는 간단한 유틸리티 메소드를 만든다.

public static void setPaddingLeft(View v, int leftPaddingDp) {
    int leftPaddingPx = dpToPx(leftPaddingDp);
    v.setPadding(leftPaddingPx, v.getPaddingTop(), v.getPaddingRight(), v.getPaddingBottom());
}

나중에 xmls에서와 같이 dp 단위를 제공하여 다음과 같이 사용합니다.

Utils.setPaddingLeft(myExampleTextView, 10)

또한 사소한 향상으로.

try / catch 블록의 주된 이유는 e1이 초기 이동에 대해 null이 될 수 있기 때문입니다. try / catch 이외에 null 및 return에 대한 테스트를 포함하십시오. 다음과 유사합니다.

if (e1 == null || e2 == null) return false;
try {
...
} catch (Exception e) {}
return false;






java android android-layout padding android-textview