마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

java 코드로 xml 뷰 배치 질문드립니다 !

0 추천
 public void onClick(View view) {
        switch (view.getId()) {
            case R.id.but:
                dynamic = new RelativeLayout(this);
                buts = new Button(this);
                dis = new TextView(this);
                dis.setText("설명...설명");
                dis.setId(set2);
                buts.setId(set);
                buts.setText("Dynamics"+set);
                RelativeLayout.LayoutParams dm = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
                dynamic.setLayoutParams(dm);
                dynamic.addView(buts);
                dm.addRule(RelativeLayout.RIGHT_OF,buts.getId());
                dynamic.addView(dis);
                back.addView(dynamic);
                set++;
                set2++;
                break;
        }
    }

버튼(buts) 오른쪽에다가 TextView 인 dis 를 넣고 싶은데

 

addRule을 사용해도 중첩되서 나와버리더라구요..;;

 

addRule ()안에 내용이 잘못된건지 선언된 위치가 잘못된건지 도저히 모르겠습니다 ㅠ

BooGalee (250 포인트) 님이 2015년 2월 3일 질문

2개의 답변

+1 추천
1. layoutparam은 childview에 설정해야 합니다.

2. java code로 하지말고 xml로 만들어 놓고 로딩해서 쓰세요.
익명사용자 님이 2015년 2월 3일 답변
0 추천
addRule을 먼저 한 후 setLayoutParams를 실행해 보세요

라고 답변 달았다가 보니까

RelativeLayout의 param 값을 dm으로 설정 하셨네요

새로운 LayoutParams 값을 추가 하셔서

addRule 하신후에

dis.setLayout(새로만든 Params)값으로 해보세요
chalsman (1,970 포인트) 님이 2015년 2월 3일 답변
RelativeLayout.LayoutParams dm2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
                dm2.addRule(RelativeLayout.RIGHT_OF,buts.getId());
                dis.setLayoutParams(dm2);
                dynamic.addView(buts);
                dynamic.addView(dis);
                dynamic.addView(tests);
                back.addView(dynamic);

으로 해보았는데.. 무진장 중첩되네요 여전히 ㅠㅠ
...