프로그래밍 방식으로이 작업을 수행해야합니다. 그래서 나와 함께 감내하십시오.왜 뷰에 넣은 각 요소에 대해 RelativeLayout.LayoutParams의 새로운 세트를 만들어야합니까?
나는 서로 아래에 정렬하도록 설정된 텍스트와 두 개의 버튼이 있습니다. 그래서 각각에 대해 새로운 RelativeLayout.LayoutParams 인스턴스를 만들고 서로 아래에 설정하는 규칙을 추가했습니다. 그게 효과적이고 나는 그걸로 행복해.
내 질문은 : 왜 이런 식으로 레이아웃을 표시하기 위해 새 인스턴스를 만들어야합니까? 다음 코드를 줄일 수있는 방법이 너무 반복적 인 (내 자신의 개인 메서드를 작성하는 것 말고는 그것을 말릴 수 있습니다.) 나는 뭔가를 활용하여 적은 코드 줄에서 같은 일을 수행 할 수있는 방법이 있는지 궁금하네요. Android SDK에서 간과 할 수 있음)? 각 요소에 대해 새로운 RelativeLayout.LayoutParams 인스턴스를 계속 만들어야합니까?
layout = new RelativeLayout(this);
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
text = new TextView(this);
text.setId(1);
text.setText("This is text");
layout.addView(text);
myButton1 = new Button(this);
myButton1.setId(2)
myButton1.setOnClickListener(this);
RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonParams.addRule(RelativeLayout.BELOW, text.getId());
layout.addView(myButton1, buttonParams);
myButton2 = new Button(this);
myButton2.setId(3)
myButton2.setOnClickListener(this);
buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonParams.addRule(RelativeLayout.BELOW, myButton1.getId());
layout.addView(myButton2, buttonParams);
감사를 사용하여 false로 추가 된 어떤 규칙을 설정할 수 있습니다. 나는 단지 내가 아무 이유없이 먼 길을 가고 있지 않다는 것을 확실히하고 싶었다. 불행히도, 나는 프로그래밍 방식 (XML 없음)으로되어있다. (나는 규칙을 만들지 않는다.) – user5243421