android, why margin_bottom value is not working? |
필자의 경우 PullToRefreshListView 를 사용하면서 ListItem 으로 여러가지 Layout 을 사용하며 margin 에 관련된 여러 가지 이슈를 발견했다.
1. ICS 이상일 경우.
FrameLayout 을 이용하면 margin 값 처리에 별 문제가 없다.
ICS 이상일 경우라도 RelativeLayout 의 경우는 다른 녀석은 잘 작동해도 marginBottom 값만은 제대로 먹지 않았다. 어디선가 layout_height = "wrap_content" 일 경우 제대로 동작 안 한다는 말이 있던데, list item 으로 사용되는 경우에는 wrap_content 와 상관없이 제대로 먹지 않는다. Shit!!
해결책 : FrameLayout 으로 처리하면 된다.
꼭 RelativeLayout 을 사용해야 한다면 padding 값으로 대체한다.
2. GingerBread 이하의 경우
GingerBread 이하에서는 FrameLayout 가 margin 값을 아예 처리를 못한다...... Shit Shit Shit!!!!!
이 해결책으로 FrameLayout children 에게 layout_gravity 값 아무거나 맥이는 방법으로 해결할 수 있지만,
그럼 RelativeLayout 과 같은 현상이 발생한다. 즉 margin_bottom 만은 처리를 못한 다는 것!!
RelativeLayout 의 경우 ICS 와 같은 현상이 발생한다.
해결책 : 국내 타겟이라도 아직 Ginger 를 버리기가 힘들다.. 흑..
마찬가지로 다른 Layout 으로 감싸고 padding 값으로 대체한다.
문제!!!
ListItem 들은 최대한 적은 layout 을 사용하는 것이 좋은데, 버전호환을 맞추다 보니 쓸데없이 view tree 가 복잡해진다.
댓글