본문 바로가기

나의 플랫폼/안드로이드

[Android] RecyclerView setAutoMeasureEnabled 함수

몇일전 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


참고하세요!