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

동적 RelativeLayout 안에 View들 위치 배정할때.. 문제

0 추천

relativeLayoutPopup안에 만든 상하좌우 버튼들을 배치를 하려고 다음과 같이 코드를 짰습니다.

=====================================================================================

RelativeLayout.LayoutParams upButtonParams = new RelativeLayout.LayoutParams(BTN_SIZE, BTN_SIZE);
upButtonParams.addRule(RelativeLayout.ALIGN_PARENT_TOP|RelativeLayout.CENTER_HORIZONTAL);
btnUp.setLayoutParams(upButtonParams);
relativeLayoutPopup.addView(btnUp);

RelativeLayout.LayoutParams downButtonParams = new RelativeLayout.LayoutParams(BTN_SIZE, BTN_SIZE);
downButtonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM|RelativeLayout.CENTER_HORIZONTAL);
btnDown.setLayoutParams(downButtonParams);
relativeLayoutPopup.addView(btnDown);

RelativeLayout.LayoutParams leftButtonParams = new RelativeLayout.LayoutParams(BTN_SIZE, BTN_SIZE);
leftButtonParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT|RelativeLayout.CENTER_VERTICAL);
btnLeft.setLayoutParams(leftButtonParams);
relativeLayoutPopup.addView(btnLeft);

RelativeLayout.LayoutParams rightButtonParams = new RelativeLayout.LayoutParams(BTN_SIZE, BTN_SIZE);
rightButtonParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT|RelativeLayout.CENTER_VERTICAL);
btnRight.setLayoutParams(rightButtonParams);
relativeLayoutPopup.addView(btnRight);

===================================================================================

헌데, 이상하게도 addRule에서 RelativeLayout.CENTER_... 속성을 위쪽과 오른쪽, 또는 아래쪽과 왼쪽 같이 각각 하나씩만 주면 제대로 RelativeRayout 의 끝쪽에 제대로 붙습니다. 그러나 상하좌우 네방향에 동시에 위의 코드처럼 RelativeLayout.CENTER_...속성을 주면 첨부그림과같이 이상하게 붙어버립니다..

대체 왜이런건지 감이 잡히지가않네요 ㅠㅠ 설명해주실수 있는분 계신가요?

방향키 모양으로 구현하고싶은데 위코드처럼하면 아래와같이 버튼끼리 이상하게 붙어버리네요 ㅜㅜ

R0R0 (2,610 포인트) 님이 2017년 1월 11일 질문

1개의 답변

0 추천
 
채택된 답변
자답입니다.

 

addRule 두번주니까 되네요 ㅠㅠ...

ㅁ망할 비트연산자
R0R0 (2,610 포인트) 님이 2017년 1월 11일 답변
...