본문 바로가기

나의 플랫폼/안드로이드

[Android] RecyclerView setAutoMeasureEnabled 함수

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

몇일전 Android에서 Android Support Library 23.2.0 버전으로 업데이트 하였습니다.


여기에서 저에 있어 가장 중요한 부분이 LinearLayoutManagersetAutoMeasureEnabled 함수가 생긴 겁니다!!!



지금 까지 RecyclerView 안에 RecyclerView나 Scroll이 관련 있는 View를 사용하게 될 경우 NestedLinearLayout 과 같은  커스터마이징이 필요했었습니다. Android 에서 자동적으로 Layout을 늘려 주지 않았으니깐요.

(참고 : http://gogorchg.tistory.com/entry/Android-Nested-RecyclerView-%EB%A7%8C%EB%93%A4%EA%B8%B0)


하지만, 이번 v23.2.0에서 생긴 setAutoMeasureEnabled 함수를 이용하면 자동적으로 ChildView 까지 크기 조절이 됩니다.


LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
linearLayoutManager.setAutoMeasureEnabled(true);
recyclerList.setLayoutManager(linearLayoutManager);

위와 같이 setAutoMeasureEnabled 함수에 true 값을 주면, 자동적으로 wrap_content에 대해 사이즈 조절을 해줍니다.


중요한점!!!!!!!!!!!!!!!!!


ChildView나 Layout을 전부 wrap_content 로 해줘야 한다는 사실


Match_parent일 경우를 무시 하고 계산을 하기 때문에 원하는 Layout 형태가 나오지 않게 됩니다.

(저 같은 경우 ImageView들이 보이질 않아 답답했음....)


layout_height 부분을 전부 wrap_content로 바꿔주세요.


참고 : http://stackoverflow.com/a/35728185/3534559


참고하세요!