1
중단 될 때까지 상대 레이아웃에보기를 추가하는 응용 프로그램을 빌드 중입니다. 내 질문에 어떻게 RelativeLayout.LayoutParams.addRule이 작동합니까? addRule을 계속 호출하면 계속 증가하는 목록을 만들거나 addRule에서 규칙이 이미 있는지 확인합니까? 다음 코드가 실제로 필요한 것입니까? addRule을 사용할 수 있습니까? 이미 존재하는 경우 중복 항목이 생성되지 않습니까?LayoutParams.addRule은 어떻게 작동합니까?
덕분에 당신은 규칙이 규칙이 인덱스입니다 int
배열에 저장되어있는 것을 볼 수 RelativeLayout.LayoutParams
클래스의 코드를보고
int[] rules = this.position[0].params.getRules();
boolean rule = false;
switch(index){
case 0:
for(int i = 0; i < rules.length; i++){
if(rules[i]==RelativeLayout.RIGHT_OF)
rule = true;
}
if(!rule){
this.position[0].params.addRule(RelativeLayout.RIGHT_OF);
}
break;
case 1:
for(int i = 0; i < rules.length; i++){
if(rules[i]==RelativeLayout.LEFT_OF)
rule = true;
}
if(!rule){
this.position[1].params.addRule(RelativeLayout.LEFT_OF);
}
break;
case 2:
for(int i = 0; i < rules.length; i++){
if(rules[i]==RelativeLayout.ABOVE)
rule = true;
}
if(!rule){
this.position[2].params.addRule(RelativeLayout.ABOVE);
}
break;
case 3:
for(int i = 0; i < rules.length; i++){
if(rules[i]==RelativeLayout.BELOW)
rule = true;
}
if(!rule){
this.position[3].params.addRule(RelativeLayout.BELOW);
}
break;
}