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

레이아웃 관련 간단한 질문입니다.

0 추천
안녕하세요.

레이아웃을 구성하던 중에 질문이 있어서 글을 남기네요^^:;;

질문 -  특정 버튼이 클릭이 되면 리스트뷰(match_parent) 아래에 마진을 주어 버튼을 삽입이 가능할까요?

제가 한 방법 -  리스트뷰(match_parent)에 마진+50dp 을 준다. 그 아래 버튼을 주고 마진을 -50을 준다. 이렇게하면

match_parent를 사용하고도 버튼을 줄 수 는 있는데 특정 버튼이 클릭 됬을 때만 꽉차던 리스트 뷰의 마진이 생기면서 버

튼이 생겨야하는데 마진이 처음부터 생겨있네요;;

특정버튼이 눌렸을 때만 리스트 뷰를 줄이고 버튼을 넣을 수 있을까요?

답변 부탁드립니다^^:;
익명사용자 님이 2013년 9월 2일 질문

1개의 답변

0 추천
LinearLayout을 사용하고 계신다면 리스트 뷰에 layout_height="0dip" 설정하시고 layout_wight 값을 주신 다음

리스트뷰 아래에 버튼을 넣으시고 해당 버튼의 visibility를 gone으로 처리하셨다가

버튼 클릭시 visible로 바꿔주시면 될듯하네요.
whitesnow (8,920 포인트) 님이 2013년 9월 3일 답변
RelativeLayout을 사용하고 있어서..음..어렵네요.ㅠㅠ
그러시다면 특정 버튼을 클릭했을때 리스트뷰에 마진을 주시고 버튼을 visible로 바꾸시면 될거 같은데요. 버튼 사라질때 마진 0으로 초기화 해주시고 버튼도 invisible이나 gone으로 처리하시면 될거 같아요. 버튼은 layout_below로 리스트뷰 아래 붙이면 되고요
답변감사합니다.

굉장히 초보적인 질문 일 수 있겠는데요.. 자바 코드상에서 마진을 0으로 초기화하는 작업은 어떻게 하나요?
 버튼.setLayoutParams..이건가요... 어떤 함수를 이용해야할까요?
감사합니다.
ViewGroup.MarginLayoutParams 참조하셔서 작업하시면 될듯합니다.
답변 다시한번 감사드립니다.
한가지만 더 질문을 드리겠습니다.
제가 현재 액티비티를 상속받지 않고 ListFragment 또는 Fragment를 상속받아서 하고 있습니다. 그 경우에는 말씀하신 ViewGroup이 나타나지 않는데 이럴때는 어떻게 해야할까요?
ViewGroup.MarginLayoutParams 은 액티비티나 프레그먼트와는 무관하게 임포트만 하면 사용가능합니다.
RelativeLayout 사용하신다니
new RelativeLayout.LayoutParams(listView.getLayoutParams());
setMargins(l,t,r,b); 하셔서 listView.setLayoutParams 해주시면 되겠네요.
정말 감사합니다. 말씀하신데로 해서 원하는데로 구성할 수 있었습니다.

다시 한번 감사드립니다. 음료라도 사드리고 싶네요!!!ㅋㅋㅋ

감사합니다^^
아참...혹시 마진 말구도... RelativeLayout이라면 어떤 버튼의 아래에 위치시켜라 라는 것을 자바 소스에서 정할 수 있나요? xml코드에서 below나 toRigth를 자바 코드에서도 적용 할 수 있나요? 화면사이즈 마다 마진값이 틀려서  RelativeLayout을 사용하고 있는데 마진으로도 하면 마추기가 쉽지 않을 것 같아서요^^:;
...