본문 바로가기
Android 개발/Android UI

clipChildren 으로 ViewGroup의 범위를 벗어나는 안드로이드 UI

by Developer88 2017. 4. 17.
반응형

안드로이드 앱을 만들면서, UI작업을 하다보면 ViewGroup의 범위를 벗어나도록 표현해야 할 경우가 생깁니다.

무작정 마이너스 마진을 넣는다고 되지는 않구요. 

ViewGroup의 clipChildren 옵션을 사용해야 하는데요.


오늘은 이 clipChildren옵션을 사용해서 VIewGroup범위를 벗어나는 UI를 그리는 방법에 대해서,

실제로 코드를 작성해보면서 정리해 보겠습니다.



1. ViewGroup에 ClipChildren 적용하기


ViewGroup중 하나인 RelativeLayout에 ClipChildren을 먼저 적용해 보겠습니다.

이 옵션은 ViewGroup의 Child가 부모의 범위안에서 그려지도록 제한할지를 정하는 옵션입니다.

false를 주지 않으면 기본값인 true로 되어서, 아무리 마이너스 마진이나 패딩을 주어도 동작하지 않습니다.




2. Child ViewGroup에도 ClipChildren적용하기


실제로, 앱을 만들때, RootView에 Child ViewGroup을 두고 그 안에 View를 그리는 일이 많은데요.

주의해야 할 점은, 적용하고자 하는 View가 ChildViewGroup에 속해있다면,

ChildViewGroup에도 ClipChildren옵션을 주어야 한다는 점입니다.




3. View에 마진 값을 주어 ViewGroup범위 넘기


이제 View에 마진값을 주어서, ViewGroup의 범위를 넘도록 해 보겠습니다.

ViewGroup인 FrameLayout의 높이가 50dp이므로,

Top마진이 50dp인 이미지를 하나 넣어주면 테스트가 가능하겠네요.




실행시켜보면, 아래와 같은 화면을 볼 수 있는데요.

파란색인 부모 viewGroup의 범위를 넘어간 ImageViwe를 확인할 수 있습니다.




한번 더 응용해서, ImageView의 ViewGroup 밑에 다른 View가 있고, 그 위에 오버랩되서 보이도록 하려면 아래와 같이 하면됩니다.




아래와 같이 다른 ViewGroup위에 오버랩된 화면을 볼 수 있습니다.



728x90

댓글