개발을 하다보면 다양한 구조의 View를 만들때가 있다.

ScrollView 안에 ListView를 넣고 싶었는데

두 개가 같이 스크롤 되어 가끔 스크롤이 제대로 동작하지 않는 문제가 발생했다.

그래서 ListView의 크기를 고정시켜 스크롤이 작동하지 않도록 하는 방법을 생각해봤다.

 

1. 기본 UI 구현

먼저 스크롤 뷰의 ChildLayout에 LinearLayout을 넣어주고 텍스트뷰와 리스트뷰를 위치시킨다.

ScrollView의 fillViewport="true"로 설정하여 스크롤뷰가 화면 전체를 차지하도록 한다.

 

 

2. Java에서 ListView 크기 설정

리스트뷰 아이템의 크기를 측정하고 높이를 모두 합하여 ListView의 Height를 설정한다.

 

 

다음과 같이 동작하는 것을 확인할 수 있다.

 

 

3. 소스 코드

https://github.com/thoon-kim/ListScroll

+ Recent posts