안드로이드 동적 레이아웃에서 layout_gravity를 사용하려면 어떻게 해야하나요?

조회수 720회

제목에서 언급했던 것처럼 동적 레이아웃에서 뷰를 정렬하고자 합니다. 다만 setPadding이나 setGravity는 찾았는데 layout_gravity를 적용하는 방법은 검색해도 보이질 않네요.. 동적 레이아웃에서는 layout_gravity 함수명이 다른건가요?

아래는 제 코드에서 동적 레이아웃을 생성하는 부분입니다. 동적 레이아웃에서 보여줄 지인 정보의 텍스트 길이가 다른 라인과 다른 경우 다음 뷰의 시작점이 달라져서 문제인 상황입니다. 예를 들어 첫줄 InfoView1에서 '김한솔', 둘째줄 InfoView1에선 '김한'을 출력한다면 첫줄에서는 InfoView1의 텍스트 길이가 둘째줄보다 길기 때문에 첫줄의 InfoView2는 둘째줄의 것보다 더 뒤에서 시작합니다.

            for(int n=0;n<readArr.length/5;n++){
                LinearLayout sl = new LinearLayout(this);
                sl.setOrientation(LinearLayout.HORIZONTAL);

                // 지인 정보를 보여줄 TextView 추가
                // 보여주는 정보는 등록된 지인명과 그룹명
                TextView InfoView1 = new TextView(this);
                TextView InfoView2 = new TextView(this);

                InfoView1.setText(" " + readArr[5*n+1]);
                InfoView1.setGravity(Gravity.CENTER);
                InfoView1.setPadding(102, 40, 0, 0);

                InfoView2.setText(" " + readArr[5*n+3]);
                InfoView2.setPadding(250,40,0,0);
                sl.addView(InfoView1);
                sl.addView(InfoView2);

                Log.v("setText", " " + readArr[5*n+1] + " " + readArr[5*n+3]);

                // 버튼 생성
                final Button btn = new Button(this);

                // setId 버튼에 대한 키값
                btn.setId(n + 1);
                btn.setText("정보 확인");
                btn.setPadding(200,40,0,0);
                btn.setGravity(Gravity.TOP | Gravity.CENTER);
                btn.setBackgroundColor(0);
                btn.getForegroundGravity();
                btn.setLayoutParams(params);

                final int friendNum = n;

                // 버튼 클릭 시 지인 정보 확인 페이지로 이동
                btn.setOnClickListener(v -> {
                    Log.d("log", "position :" + friendNum);

                    Intent baIntent = new Intent(FriendListActivity.this, ConfirmFriendInfoActivity.class);
                    baIntent.putExtra("지인 번호", friendNum);
                    startActivity(baIntent);
                });

                //버튼 add
                sl.addView(btn);

                // lm에 정의된 레이아웃 추가
                lm.addView(sl);
            }

혹시 여기에서 layout_gravity가 아닌 다른 함수를 사용해서 깔끔하게 정렬이 가능한 방법이 있다면 답변 부탁드립니다.

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

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

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

(ಠ_ಠ)
(ಠ‿ಠ)