안드로이드 개발 질문/답변
(글 수 45,052)
public void switchingViewToggle(boolean toggle){
//스위칭 대상인 레이아웃파라미터를 받아온다. 스위칭대상은 컨텐츠뷰를 중심으로 위로/아래로 내려가는 일반 View
lp = (LayoutParams) switchingView.getLayoutParams();
//매뉴 닫힘
if(toggle){
lp.addRule(RelativeLayout.ABOVE);
switchngFlag = false;
}
//매뉴 열림
else{
lp.addRule(RelativeLayout.BELOW);
switchngFlag = true;
}
switchingView.setLayoutParams(lp);
}
이렇게 구성했는데 반대로 구현이되요..; below는 분명 아래로인데 아래로 안오고 위로 올라옵니다;;
그리고 above는 아에 먹히질 않는것같아요;;
2012.07.26 10:29:01
앵커를 주니까 아무런 변화도 안생겨요.. 앵커가 잘못되었나..;
public void switchingViewToggle(boolean toggle){
//스위칭 대상인 레이아웃파라미터를 받아온다. 스위칭대상은 컨텐츠뷰를 중심으로 위로/아래로 내려가는 일반 View
lp = (LayoutParams) switchingView.getLayoutParams();
Log.d("lejewk","lp의 상태 : "+lp.getRules());
//매뉴 닫힘
if(toggle){
//스위칭뷰를 아래로 내림
Log.d("lejewk","뷰를 아래로 내림");
lp.addRule(RelativeLayout.BELOW , switchingViewTarget.getId());
switchngFlag = false;
}
//매뉴 열림
else{
//스위칭 뷰를 위로 올림
Log.d("lejewk","뷰를 위로 올림");
lp.addRule(RelativeLayout.ABOVE , switchingViewTarget.getId());
switchngFlag = true;
}
switchingView.setLayoutParams(lp);
}
이렇게바꿧는데도 ㅠㅠ




addRule 메소드가 여러 종류가 있습니다. 앵커가 빠졌네요.
lp.addRule(RelativeLayout.BELOW); 이런식으로 했다면 어느 뷰 밑에 있어야 하죠?
그걸 정해주는게 앵커죠. 앵커는 해당 뷰의 id 값을 넣어 주면 됩니다.
lp.addRule(RelativeLayout.BELOW, 앵커에 해당하는 뷰의 id);