본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] why margin_bottom value is not working?

by 돼지왕 왕돼지 2013. 11. 15.
반응형


 android, why margin_bottom value is not working?

 


[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 가 복잡해진다.



반응형

댓글