java 코드로 margin, padding 값 변경하기

조회수 3805회

안녕하세요~~

자바 코드로 동적으로 버튼을 추가하는 것을 코딩하고 있는데요

아래 사진에 맨 왼쪽의 버튼을 누르면 오른쪽의 버튼들이 생기는 형태입니다.

이미지

그런데 그림에서처럼 TAB0, TAB1, TAB2 버튼들 사이테 간격이 존재하는데 그 간격을 없애고 싶어서 검색해서 해보긴 하였으나 적용이 되지 않아서 질문 올립니다. ㅠㅠ

새로 생기는 버튼은 Button을 extends 해서 만든 Custom 버튼들이고요

그안의 코드에서

 private void init(Context context, String indicator) {
        int width = dpToPx(context, 100);
        int height = dpToPx(context, 48);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height);
        params.bottomMargin = 0;
        params.leftMargin = 0;
        params.rightMargin = 0;
        params.topMargin = 0;
        this.setLayoutParams(params);
        this.setText(indicator);
        this.setGravity(Gravity.CENTER);
        this.setPadding(0,0,0,0);
    }

무엇이 문제인지...ㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • style을이용해서 margin을 없애보세요. 아마 안드로이드 기본 default margin이 있어서 간격이 사라지지 않는것 같습니다.

    styles.xml에서 margin을 없애면 버튼의 margin이 사라질거에요. 버튼을 생성하는곳에서 new Button (context, attrs(없으면 null로 넘겨도 됩니다.), R.style.MyApp.Button)이렇게 선언해보세요.

    styles.xml
        <style name="MyApp.Button" parent="Base.Widget.AppCompat.Button">
            <item name="android:layout_margin">0dp</item>
        </style>
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)