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

가운데를 기준으로 마진 주기 질문!

0 추천

안녕하세요, 안드로이드 초보 개발자입니다.

 

<View

        android:layout_width="50dp"

        android:layout_height="50dp"

        android:layout_alignParentRight="true"

        android:layout_centerVertical="true"

        android:background="#77ff0000" />

 

이런 뷰가 있습니다. (상위뷰는 렐러티브레이아웃)

보시는바와 같이 android:layout_centerVertical를 true로 줘놓으면 가운데로 정렬이됩니다.

 

근데 제가 하고싶은거는 가운데를 기준으로 해서 위로 얼마만큼 올려주고 싶은겁니다.

그래서 marginTop, marginBottm에 -dp,+dp를 여러가지로 지정해봤는데...

그냥 무조건 가운데에 있네요.. ㅠㅠ

 

혹시 이에 대한 처리방법 아시는분 조언부탁드립니다!! 

블랙이요블랙 (12,860 포인트) 님이 2013년 9월 6일 질문

2개의 답변

+1 추천
 
채택된 답변
RelativeLayout 의 자식뷰로는 가운데를 기준으로 마진을 주기 어렵습니다.

부모를 FrameLayout 으로 바꿀 수 있는 상황이면 layout_gravity 를 center로 맞추고 마진을 주면 조정가능하고,

부모를 반드시 RelativeLayout으로 해야하는 상황이면

약간의 꼼순데 높이 넓이 1짜리 빈 View를 하나 layout_centerInParent true로 해서 넣으시고

걔를 기준으로 참조해서 레이아웃 잡으시면 됩니다.
b22n (22,940 포인트) 님이 2013년 9월 6일 답변
블랙이요블랙님이 2013년 9월 6일 채택됨
답변감사합니다~ 말씀해주신 꼼수를 사용해서 해결하게되었네요!!
0 추천
패딩을 줘보세요............
aucd29 (218,390 포인트) 님이 2013년 9월 6일 답변
답변감사합니다. ㅠ
상위레이아웃, 해당레이아웃에 모두 여러가지 방법으로 패딩을 줘봤는데.. 역시나 가운데에서 이동이 되지 않네요 ㅠ
height 값을 dp 로 고정시킨 이유가 있나요?
가장 기본적으로 android project 를 생성 하면 releative layout 에 textview 가 하나 나타나는 데요 이걸 padding 값을 주면 상단으로 올라가게 됩니다.

하지만 height 값을 주게 되면 올라가지 않게 되는 것이죠 실제로는 올라갔으나 해당 내용이 가려지는 효과가 나타나게 됩니다.
네 크기가 고정되어야만해서요.. ㅠㅠ
제가 초보개발자라... 위에서 시키는데로 하고있는 실정입니다.
아직 모르면서도 그냥 따르는게 너무 많네요 ㅠㅠ
어쨋든 답변 감사했습니다!
...